0
Rspec 테스트를 작성하는 데는 다른 기능이 있습니다. 하지만 여기서 문제가되는 것은 각 함수마다 동일한 구문을 사용하므로 각 테스트 사례에 대해 "예상"하는 붙여 넣기를 복사해야합니다. 내가 주장하는 것을 어떻게 쓸 수 있는지 한번 아시고 각 테스트 단계에 적용 하시겠습니까? 에서어떻게 반복적으로 테스트하지 않고 하나의 Rspec이 모든 테스트에 대해 어설 션을 실행할 수 있습니까?
보기 "기대 (지연 :: Job.count) .TO EQ (1)"아래의 코드에서 : 당신은 두 가지 옵션이 여기있어
it 'is able to send reminder email for submission deadline to signed-up users ' do
mail = DelayedMailer.new(@assignment.id, "submission", @due_at)
Delayed::Job.enqueue(payload_object: mail, priority: 1, run_at: 1.second.from_now)
expect(Delayed::Job.count).to eq(1)
expect(Delayed::Job.last.handler).to include("deadline_type: submission")
expect { mail.perform } .to change { Mailer.deliveries.count } .by(1)
end
it 'is able to send reminder email for review deadline to reviewers ' do
mail = DelayedMailer.new(@assignment.id, "review", @due_at)
Delayed::Job.enqueue(payload_object: mail, priority: 1, run_at: 1.second.from_now)
expect(Delayed::Job.count).to eq(1)
expect(Delayed::Job.last.handler).to include("deadline_type: review")
expect { mail.perform } .to change { Mailer.deliveries.count } .by(1)
end
it 'is able to send reminder email for Metareview deadline to meta-reviewers and team members of the assignment' do
mail = DelayedMailer.new(@assignment.id, "metareview", @due_at)
Delayed::Job.enqueue(payload_object: mail, priority: 1, run_at: 1.second.from_now)
expect(Delayed::Job.count).to eq(1)
expect(Delayed::Job.last.handler).to include("deadline_type: metareview")
expect { mail.perform } .to change { Mailer.deliveries.count } .by(2)
end
실수로 두 번째 링크가 첫 번째 링크와 동일하다고 생각합니다. 나는 네가하는 말을 안다. 그러나 나는 사람들이 헬퍼 나 "애프터"블록에 "기대하다"라는 명령을 두는 것을 보지 못한다. –