我一直在查看测试,我看到
request: true
和 type: request
被使用,似乎可以互换。
我想知道它们之间有什么区别,是否有区别,以及使用哪种正确的格式。我发现很难找到有关这两个设置的文档或任何信息,如果有人也能指出我,那就太棒了,谢谢。
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!
方法,可以让您省略显式类型声明。