2

我正在尝试在 Rspec 3.0 中使用 Spree 2.3 路由助手。在主应用程序中,我可以通过前缀访问它们spree.,如下所示:

spree.admin_login_path => 'spree/admin/user_sessions#new'

但是我似乎无法在 Rspec 中访问它们。

#rspec error
undefined local variable or method `spree_admin_login_path'

我找到了在 rails_helper 文件中包含帮助程序的参考,但这会引发错误

# app/spec/rails_helper.rb
RSpec.configure do |config|
  config.include Spree::Core::UrlHelpers
end

# configuring the above results in the following
app/spec/rails_helper.rb:21:in `block in <top (required)>': uninitialized constant Spree (NameError)

如何访问$ rake routes我的测试中给出的狂欢路线?

4

1 回答 1

6

在深入研究 Spree 代码后,我能够为我的 rails_helper 文件组合此设置,让我可以spree.admin_login_path在我的规范文件中使用 spree 路线:

# app/spec/rails_helper.rb
require 'spree/testing_support/url_helpers'

RSpec.configure do |config|
  config.include Spree::TestingSupport::UrlHelpers
end

我确信有一种更顺畅的方法可以包含所有 Spree 的测试助手,我很想从知道的人那里听到。

于 2014-08-14T16:04:49.117 回答