我在我的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