2

有什么方法可以为所有控制器测试加载一些工厂吗?我有一些对于所有控制器测试(菜单项)都是必需的,我不喜欢将它们都单独放在控制器中。不是很干:)

谢谢

4

2 回答 2

2

也许你可以看看 rspec 的共享上下文,在这里突出显示:https ://www.relishapp.com/rspec/rspec-core/v/2-11/docs/example-groups/shared-context

于 2013-02-01T11:09:35.320 回答
1

创建一个RSpec 宏

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!就像letbefore块中引用它一样。

ControllerMacros也是添加sign_in方法等内容的便捷位置。

您也可以将共享示例放入其中spec/support

于 2013-05-22T14:25:04.180 回答