在升级的rails 5应用程序中对控制器测试中的请求进行存根

时间:2016-12-01 06:21:42

标签: rspec ruby-on-rails-5

在升级到rails 5之前,我们的应用程序使用

成功地在控制器测试中存根了request.user_agent
allow(request).to receive(:user_agent).and_return 'Special Agent'

我注意到stubbing now uses ActionDispatch::IntegrationTest所以  我尝试使用#capybara-user_agent gem和

set_custom_user_agent('Special Agent')

在我的控制器测试中,但这也不起作用。但是,set_custom_user_agent适用于rails 4和rails 5中的功能规范。如何在rails 5中的控制器规范中存根用户代理?

1 个答案:

答案 0 :(得分:1)

您是否尝试在request.env['HTTP_USER_AGENT'] = 'agent'阻止中致电before?我确定你可以在存根不起作用时修改Rack环境