gpt4 book ai didi

ruby-on-rails - RSpec.configure 和请求对象

转载 作者:数据小太阳 更新时间:2023-10-29 07:00:43 26 4
gpt4 key购买 nike

我有一个作为 RESTful API 构建的 Rails 3.1 应用程序。计划是根据通过 Authorization HTTP header 在每个请求上传递的 API key 来处理身份验证。为了在 RSpec 中对此进行测试,我想在 config.before block 中设置 request.env["HTTP_AUTHORIZATION"] 属性:

RSpec.configure do |config|
config.mock_with :rspec
config.use_transactional_fixtures = true
config.before(:each) do
# Set API key in Authorization header
request.env["HTTP_AUTHORIZATION"] = "6db13cc8-815f-42ce-aa9e-446556fe3d72"
end
end

不幸的是,这会引发异常,因为 request 对象不存在于 config.before block 中。

是否有另一种方法可以在包含之外设置此 header 它在每个 Controller 测试文件的 before block 中?

最佳答案

我自己还没有尝试过,但也许创建共享示例组可以帮助您解决问题:

 shared_examples_for "All API Controllers" do
before(:each) do
request.env["HTTP_AUTHORIZATION"] = "blah"
end

# ... also here you can test common functionality of all your api controllers
# like reaction on invalid authorization header or absence of header
end

describe OneOfAPIControllers do
it_should_behave_like "All API Controllers"

it "should do stuff" do
...
end
end

关于ruby-on-rails - RSpec.configure 和请求对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7277390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com