我在我的rails應用程序中發佈了一個rake任務,這個任務發佈到facebook。然後改變一些模型值。 因此,測試rake任務的一種方法是調用rake任務並檢查已更改的值。如何測試Minitest中的耙子任務?
test 'z' do
# setup some data
Rake::Task['job:publish_to_facebook'].invoke
Rake::Task['job:publish_to_facebook'].reenable
# assert table values that has been changed.
end
但我如何測試工作是否成功發佈在Facebook上?有沒有更好的策略,除了使用水豚和硒-webdriver?
即使我使用存根和嘲諷那麼我如何驗證我的工作是在Facebook上發佈?
感謝您的回答。你能否用摩卡解釋覆蓋方法。意味着如何使用摩卡測試該方法?正如你所建議的,如果我將post_message移動到單獨的類,那麼我將如何測試該方法正在完成其工作。忘記檢查Facebook上的消息 –
我只是想測試post_message是否在做它的工作。 –
查看http://gofreerange.com/mocha/docs/進行嘲諷。但是,如果你唯一的擔心就是測試你在Facebook上發佈信息並且不擔心構建信息的邏輯 - 那麼這就是我在第二段中的意思,也就是說我會爲所有的應用程序創建一個簡單的Facebook類Facebook的需求,並以我提到的方式撰寫FacebookTest課程。這部分與嘲弄無關。理想情況下,您需要全部三種測試(單元測試與模擬,單元測試以檢查調用外部API,以及集成測試來測試所有這些)。 – mahemoff