我是否会过度使用导轨测试

时间:2013-04-19 04:12:48

标签: ruby-on-rails unit-testing testunit

我的模型成员有这些验证

validates :status, :presence => true, :numericality => {:only_integer => true}

为了测试它,我的计划是制作一个只有完全有效的模型实例的灯具,然后进行测试以确保它是有效的,另一个测试以确保将game_status设置为nil无效和3个数值测试:一个测试它是无效的,如果我将它设置为一个字符串,一个测试它是无效,如果我将它设置为十进制,并测试它是有效的,如果我将它设置为一个整数

总的来说,测试2个简单的rails验证的5个测试感觉就像我可能会过分,特别是当我添加另一个成员就像状态需要几乎相同的验证。我知道rspec有像should_validate_presence_of这样的东西,但对于我的第一个项目,我想使用test :: unit。

如果这是在铁轨上做事的正常方式,我很好。但如果有一种更简单的方法,我宁愿这样做。或者你通常不测试这么简单的东西?

我不是在寻找一个宝石来为此抽象一切,除非这样做几乎是公认的标准。否则,我想以符合一般轨道最佳实践的方式使用基本的test :: unit。

1 个答案:

答案 0 :(得分:2)

我想说如果你想要这些功能,那么你应该测试它们。例如,考虑一下Rails实现是否会在未来发生变化。失败的单元测试将立即让你知道“嘿!我的应用程序的行为已经改变了!”

也就是说,只测试您关心应用程序的案例 - 无需复制整个Rails测试套件。绝对要对您的“快乐”案例进行测试,其中输入应被视为有效。如果您认为可能/可能会出现小数或字符串,那么请测试在这些情况下会发生什么。如果你发现自己在其他地方这样做,那么自己做一些共享帮助方法,如check_doesnt_allow_decimals等。