我有 2 个示例,但我觉得其中的大部分代码是相同的。然而,它们有点不同(记录略有不同,第二个中也有一个额外的断言)。我仍然是测试的初学者,所以在我前进的过程中只是寻找一些技巧。我正在测试一个 rake 任务。这是我的代码:
it 'leaves one billing info for each order' do
order = FactoryGirl.create(:order)
FactoryGirl.create_list(:billing_info, 2, order_id: order.id)
expect(BillingInfo.all.count).to eq(2)
run_rake_task
expect(BillingInfo.all.count).to eq(1)
end
it 'keeps the billing info with trevance information' do
order = FactoryGirl.create(:order)
FactoryGirl.create(:billing_info, order_id: order.id, complete_trevance_message: nil, trevance_attempts: nil)
FactoryGirl.create(:billing_info, order_id: order.id, complete_trevance_message: "303 -- Processor Decline", trevance_attempts: 1)
expect(BillingInfo.all.count).to eq(2)
run_rake_task
expect(BillingInfo.all.count).to eq(1)
expect(BillingInfo.first.complete_trevance_message).to eq("303 -- Processor Decline")
end
如您所见,它们非常相似。像这样将它们分成两部分可以吗?或者,还有更好的方法?