Ruby on rails 4 使用Minitest为所有测试设置标题的最佳方法
.嗨。我有这个API和一个自定义头,它需要在所有请求中传递给任何控制器。在Minitest中,我应该在每个测试中执行Ruby on rails 4 使用Minitest为所有测试设置标题的最佳方法,ruby-on-rails-4,tdd,bdd,minitest,rails-api,Ruby On Rails 4,Tdd,Bdd,Minitest,Rails Api,.嗨。我有这个API和一个自定义头,它需要在所有请求中传递给任何控制器。在Minitest中,我应该在每个测试中执行@request.headers['Custom-Header']='Custom-Value'。碰巧我有很多控制器,这些代码在每个文件的顶部description块重复 我在想办法做这个干衣机。我甚至试过: module Minitest::CustomHeaderSetup def before_setup super @request.headers['C
@request.headers['Custom-Header']='Custom-Value'
。碰巧我有很多控制器,这些代码在每个文件的顶部description
块重复
我在想办法做这个干衣机。我甚至试过:
module Minitest::CustomHeaderSetup
def before_setup
super
@request.headers['Custom-Header'] = 'Custom Value' if @request.present?
end
Minitest::Test.send(:include, self)
end
但是,
@request
此时不存在。有什么想法吗?谢谢 解决了强>
Minitest::Test.send(:include,self)
将该代码应用于每个测试文件,而不仅仅是控制器测试。因此,实际上应该做的是:
module Minitest::CustomHeaderSetup
def before_setup
super
@request.headers['Custom-Header'] = 'Custom Value'
end
end
对于我们希望表现为这样的控制器测试文件,我们应该添加:
include Minitest::CustomHeaderSetup
更新
这将自动将自定义标头设置为所有控制器测试
module Minitest::CustomHeaderSetup
def before_setup
super
@request.headers['Custom-Header'] = 'Custom Value'
end
ActionController::TestCase.send(:include, self)
end
您好,应该在哪里添加这些代码,似乎@request is nil?
Minitest::CustomHeaderSetup
可以作为test/support/custom\u header\u setup.rb
进入支持测试文件。