2014-09-05 38 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 
相關問題