有什么办法可以为所有控制器测试加载一些工厂吗?我有一些是所有控制器测试(菜单项)所必需的,我不喜欢将它们全部放在控制器中。不是很干:)
由于
答案 0 :(得分:2)
也许你可以看看rspec的共享上下文,在这里突出显示:https://www.relishapp.com/rspec/rspec-core/v/2-11/docs/example-groups/shared-context
答案 1 :(得分:1)
创建RSpec macro。
使用user
作为您要使用的工厂,这是您放入spec/support/controller_macros.rb
的示例:
module ControllerMacros
let!(:user) { FactoryGirl.create :user }
end
在spec/spec_helper.rb
中包含控制器的宏:
RSpec.configure do |config|
config.extend ControllerMacros, :type => :controller
end
let!
就像let
一样,好像它是在before
块中引用的。
ControllerMacros
也是一个方便的地方,可以添加sign_in
方法等等。
您也可以将shared examples放入spec/support
。