我想创建一个类似于response
object 的自定义变量,该变量只能在controller specs
. 我注意到 rspec 支持在钩子之前/之后的过滤器,这意味着我可以使用它们创建实例变量以供以后使用。但是response
object 感觉和工作更像是一个let
被延迟评估的变量。此外,控制器规范支持assign
可以接受参数的方法。rspec 是否支持任何方式来创建用于特定类型规范的类似方法?
注意:我不需要支持低于 rspec 3.0 的任何东西。
您可以通过使用您的函数创建一个模块然后将其包含在您的 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