Я использую видеомагнитофон, чтобы сделать свои спецификации намного быстрее, как показано ниже:
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 местах (единственное отличие заключается в название кассеты, потому что мне нужно использовать новый запрос). Есть ли способ не повторять один и тот же код с видеомагнитофоном?
Образец различных спецификаций с почти одинаковым кодом:
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