0

我想创建一个类似于responseobject 的自定义变量,该变量只能在controller specs. 我注意到 rspec 支持在钩子之前/之后的过滤器,这意味着我可以使用它们创建实例变量以供以后使用。但是responseobject 感觉和工作更像是一个let被延迟评估的变量。此外,控制器规范支持assign可以接受参数的方法。rspec 是否支持任何方式来创建用于特定类型规范的类似方法?

注意:我不需要支持低于 rspec 3.0 的任何东西。

4

1 回答 1

2

您可以通过使用您的函数创建一个模块然后将其包含在您的 RSpec 配置块中来简单地做到这一点。当您包含模块时,您可以控制应该作为第二个参数使用的规范类型:

module ControllerSpecHelpers
  def something
    'fubar2000'
  end
end

RSpec.configure do |config|
  config.include ControllerSpecHelpers, type: :controller
end

RSpec.describe BlahController, type: :controller do
  it 'should be possible to use the `something` helper in a controller spec' do
    expect(something).to eq('fubar2000')
  end
end
于 2014-09-05T19:54:15.167 回答