调用FactoryGirl.create进行所有rspec控制器测试?

时间:2013-02-01 11:06:10

标签: ruby-on-rails-3 rspec factory-bot

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

由于

2 个答案:

答案 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