假设我有一个共同的例子:
shared_examples 'success' do
let(:params) { key: "value" }
it "returns data" do
post "/api/users", params: params
expect(response.status).to eq (201)
end
end
字符串
当我在it_behaves_like
中使用这个共享示例时,我可以向它传递一个块来扩展预期的列表吗?
例如,我这样写:
it_behaves_like "success" do
expect(response['id]).to eq(1)
end
型
希望rspec能像这样编译它:
it "returns data" do
post "/api/users", params: params
expect(response.status).to eq (201)
expect(response['id]).to eq(1)
end
型
上面的代码显然没有像我想要的那样工作,但我想知道如何编写它,以便RSpec可以像我上面预期的结果那样理解它。有可能吗?
1条答案
按热度按时间bfnvny8b1#
您可以将其分为执行API请求的shared context和检查状态代码的shared example,例如:
字符串
然后可以将这些组合起来:
型