Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 我是否在进行rails测试_Ruby On Rails_Unit Testing_Testunit - Fatal编程技术网

Ruby on rails 我是否在进行rails测试

Ruby on rails 我是否在进行rails测试,ruby-on-rails,unit-testing,testunit,Ruby On Rails,Unit Testing,Testunit,我的模型中有一个成员进行了这些验证 validates :status, :presence => true, :numericality => {:only_integer => true} 为了测试这一点,我的计划是制作一个具有完全有效的模型实例的夹具,然后进行一个测试以确保其有效,另一个测试以确保将game_status设置为nil无效,以及3个数字性测试:一个测试如果我将其设置为字符串则其无效,一个测试,如果我将它设置为十进制,它是无效的;另一个测试,如果我将它设置为

我的模型中有一个成员进行了这些验证

validates :status, :presence => true, :numericality => {:only_integer => true}
为了测试这一点,我的计划是制作一个具有完全有效的模型实例的夹具,然后进行一个测试以确保其有效,另一个测试以确保将game_status设置为nil无效,以及3个数字性测试:一个测试如果我将其设置为字符串则其无效,一个测试,如果我将它设置为十进制,它是无效的;另一个测试,如果我将它设置为整数,它是有效的

总的来说,5个测试测试2个简单rails验证,感觉我可能太过火了,特别是当我添加另一个成员时,就像status一样,它需要几乎相同的验证。我知道rspec有一些东西,比如应该验证的存在,但是对于我的第一个项目,我想使用test::unit

如果这是在rails中做事情的正常方式,我很乐意这样做。但如果有更简单的方法,我宁愿这样做。或者你通常不测试这些简单的东西


我并不是在寻找一块宝石来把所有的东西都抽象出来,除非这样做是公认的标准。否则,我只想以符合一般rails最佳实践的方式使用basic test::unit。

我想说,如果您希望这些功能正常工作,那么您应该测试它们。例如,如果Rails实现在将来改变。一个失败的单元测试将是一个很好的方式,可以立即让您知道“嘿!我的应用程序的行为已经改变了!”


也就是说,只测试您关心的应用程序用例,不需要复制整个Rails测试套件。一定要对你的“快乐”案例进行测试,在这些案例中,输入应该被认为是有效的。如果您认为十进制或字符串可能通过,那么也测试在这些情况下会发生什么。如果您发现自己在其他地方这样做,那么就为自己创建一些共享帮助器方法,如
check\u doesnt\u allow\u decimals
,等等。

Shoulda matchers也可用于测试单元/迷你测试我并不是真的在寻找一个可以把所有东西都抽象出来的宝石,除非现在这样做是非常标准的。为什么要测试Rails的内置功能?测试它似乎很常见。看一看。我想你可能忘了验证。你是说我不应该写任何与验证相关的测试?这是问题的一部分。你应该看看谢谢。这正是我所想的,但我就是找不到任何人在网上这样做的好例子。