2009-11-12 45 views
1

我正在使用rakismet宝石提交用户内容到Akismet进行垃圾邮件测试。如何在Rails应用程序中测试akismet?

到目前为止,我所做的每项测试都将内容分类为垃圾邮件。

我开始认为我做错了什么。

有谁知道为什么我可能会在我的测试数据中得到所有误报?

回答

2

...因为他们是测试数据?

你不能依赖测试中真正的rakismet数据。因为任何测试都可能在一天或其他时间被检测为垃圾邮件。
或仅仅因为使用rakismet需要你有一个互联网连接,有时可能不是这样。

你应该嘲笑rakismet方法并强制它们返回你期望的结果。
例如,您可以使用mocha。并做类似以下内容:

Object.stubs(:spam?).returns(false) 

因此,您的对象将永远不会出现垃圾邮件。

+0

我手动创建用户并模拟发送给Rakismet的不同IP地址。我需要检查一切配置是否正确。你的建议会假装rakismet总是起作用或者总是不起作用。我不明白这是如何相关的。 – Richard 2009-11-12 23:02:30

+0

那么这不是你的工作来检查rakismet是否有效。库中有一些单元测试(http://github.com/jfrench/rakismet/tree/master/spec/)。这就是rakismet后台工作正在测试的地方。 – 2009-11-12 23:04:28

+0

如果您愿意,您可以在应用程序中包含rakismet的rspec故事。但是当你测试你的模型时,是的,你应该假设一切正常。 – 2009-11-12 23:05:15