2014-09-05 54 views
0

我想创建一个类似于response对象的自定义变量,该变量只应在controller specs中可用。我注意到rspec支持在钩子之前/之后的filters,这意味着我可以创建实例变量以供稍后使用。但response对象的感觉和工作更像一个懒惰评估变量let。另外,控制器规格支持可以接受参数的方法assign。 rspec是否支持任何方式来创建类似的方法来使用特定类型的规范?创建自定义rspec变量,如控制器规格的响应

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

+0

也许发布你正在测试的东西,我们可以从那里获得更多的帮助。 – engineersmnky 2014-09-05 18:54:18

回答

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