Rails 测试/rspec 中 `request: true` 和 `type: request` 有什么区别?

问题描述 投票:0回答:1

我一直在查看测试,我看到

request: true
type: request
被使用,似乎可以互换。

我想知道它们之间有什么区别,是否有区别,以及使用哪种正确的格式。我发现很难找到有关这两个设置的文档或任何信息,如果有人也能指出我,那就太棒了,谢谢。

ruby-on-rails testing rspec integration-testing
1个回答
0
投票

type: :request
只是元数据,但它具有特殊的意义,因为它将导致 RSpec::Rails 将规范建立在
ActionDispatch::IntegrationTest
的基础上,它提供了发送 HTTP 请求的帮助器以及许多其他功能。

RSpec.describe "Foo", type: :request do
  context "Bar", baz: "Hello World" do
    it "has metadata" do
      expect(example.metadata[:baz]).to eq "Hello World"
      expect(example.metadata[:type]).to eq :request
    end
  end
end

我认为我从未见过

request: true
被使用过,它也没有出现在任何文档中。

或者,RSpec::Rails 有一个

infer_spec_type_from_file_location!
方法,可以让您省略显式类型声明。

© www.soinside.com 2019 - 2024. All rights reserved.