0
我有不同的函數來編寫一個Rspec測試。但問題是,我試着在這裏測試,每個函數都有相同的語法,所以我必須複製每個測試用例的「期望」行的粘貼。你知道我該如何寫一次,期望斷言一次並適用於每個測試步驟?我如何使用一個Rspec期望斷言爲每個測試運行,而不重複自己?
看看 「預計(延遲:: Job.count)。爲了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
我認爲你的第二個鏈接與第一個鏈接是錯誤的。我知道你在說什麼,但我沒有看到人們將「expect()...」命令放在助手或「之後」塊中。 –