如何在RSpec中使用狂欢路线助手

时间:2014-08-14 15:38:53

标签: ruby-on-rails ruby-on-rails-4 spree rspec3

我正在尝试在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中给出的狂欢路线?

1 个答案:

答案 0 :(得分:4)

在深入研究Spree代码之后,我能够为rails_helper文件整理这个设置,让我在我的spec文件中使用spree路由,例如spree.admin_login_path

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

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

我确信有一种更顺畅的方式可以包括所有Spree的测试助手,而且我很乐意听到有人知道的事情。