使用 Minitest 为所有测试设置 header 的最佳方法
Best way to set a header to all tests using Minitest
.嗨。我有这个 API 和一个自定义的 header,它需要在所有请求中传递给任何控制器。在 Minitest 中,我应该在每个测试中做 @request.headers['Custom-Header'] = 'Custom Value'
。好吧,碰巧我有很多控制器,这段代码在每个文件的顶部 describe
块中重复。
我正在想办法制作这个 DRYer。我什至尝试过:
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
更新
这会自动将自定义 header 设置为您所有的控制器测试。
module Minitest::CustomHeaderSetup
def before_setup
super
@request.headers['Custom-Header'] = 'Custom Value'
end
ActionController::TestCase.send(:include, self)
end
.嗨。我有这个 API 和一个自定义的 header,它需要在所有请求中传递给任何控制器。在 Minitest 中,我应该在每个测试中做 @request.headers['Custom-Header'] = 'Custom Value'
。好吧,碰巧我有很多控制器,这段代码在每个文件的顶部 describe
块中重复。
我正在想办法制作这个 DRYer。我什至尝试过:
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
更新
这会自动将自定义 header 设置为您所有的控制器测试。
module Minitest::CustomHeaderSetup
def before_setup
super
@request.headers['Custom-Header'] = 'Custom Value'
end
ActionController::TestCase.send(:include, self)
end