【发布时间】:2020-03-05 12:44:03
【问题描述】:
我正在使用 VCR 使我的规格更快,如下所示:
RSpec.describe NewCollaborator, type: :service do
let(:call) { described_class.new(user, repo).call }
let(:user) { 'user@example.com' }
let(:repo) { 'github-repo' }
context 'when jira board is provided' do
it 'create jira ticket with new user and github repo',
:aggregate_failures, vcr: { cassette_name: 'new_collaborator' } do
expect(call).to eq(true)
expect(WebMock).to have_requested(:post, 'https://company_board.atlassian.net/rest/api/2/issue')
end
end
end
问题是我在超过 5 个地方都有几乎相同的规格主体(唯一的区别是卡带名称,因为我需要使用新请求)。有没有办法不与 VCR 重复相同的代码?
具有几乎相同代码的不同规格示例:
RSpec.describe NewRepo, type: :service do
let(:call) { described_class.new(user, repo).call }
let(:user) { 'user@example.com' }
let(:repo) { 'github-repo' }
context 'when jira board is provided' do
it 'create jira ticket of new repo',
:aggregate_failures, vcr: { cassette_name: 'new_repo' } do
expect(call).to eq(true)
expect(WebMock).to have_requested(:post, 'https://company_name.atlassian.net/rest/api/2/issue')
end
end
end
【问题讨论】:
标签: ruby-on-rails rspec