![]() |
1
15
验证本身应该是可信的,但您可能需要检查验证是否存在。 换句话说,测试某个东西的一个好方法就是把它当作一个黑盒子,从实现中抽象出测试,例如,您可能有一个测试,它检查一个人员模型是否没有名字就不能保存,但不关心人员类如何执行验证。 |
![]() |
2
4
可以接受的是,像ActiveRecord这样的库在开发人员的测试中比您更好:对他们来说,这是一个主要的问题,对您来说,这充其量是无关紧要的。 这并不是说不会有错误——很久以前我发现过一个很小的MS SQL Server适配器——但是您可能要实现的测试类型极不可能公开它们,因为它们很可能是边缘情况。如果你 做 找到一个bug,当然,如果你用一个暴露它的测试用例来报告它,它可能会非常有用! 如果我想更好地理解库实现的某个特定方面,我只会测试ActiveRecord内部。我不会在任何应用程序项目中包含这些探索性测试,因为它们与项目并不真正相关。 一般来说,您应该为自己编写的代码编写测试:如果您生活或尝试生活在一个TDD世界中,那么测试应该在之前编写。如果您的模型有验证规则,那么您几乎可以肯定地编写测试来确保规则存在。在大多数情况下,测试将是琐碎的,但是如果将来某个时候不经意删除了一行,它们将非常有用… |
![]() |
3
3
正如迈克所写,至少你应该测试验证是否存在。这只是一点复式会计(健全检查)是很容易做到的。 根据具体情况,还应该测试您的模型在特定情况下是否有效。例如,如果您的字段需要某种格式,则测试有效和无效的示例格式。通过阅读测试中的几个示例,更容易了解这意味着什么:
是的,验证测试得很好,足够可靠。但是正确使用验证是您想要验证的。 |
![]() |
4
0
作为旁注,RyanBigg的博客帖子 has_and_belongs_to_many double insert 提到有人在ActiveRecord中遇到了一个错误(尽管与验证无关)。正如他指出的,不要假设Rails不可能有bug,因为我们知道有900张Rails的开放票。 但是,是的,您编写测试的主要原因是检查ActiveRecord的使用是否正确。 |
|
wavesinaroom · 断言结构向量长度 5 月前 |
![]() |
Tim Kirkwood · 比较空数据帧 6 月前 |
![]() |
Kamran Khan · 使用单元测试ASP。NET核心 10 月前 |
![]() |
paymer · 为什么我的代码没有删除我的单元测试生成的zip文件? 11 月前 |
![]() |
Ricky Mo · 角度测试如何模拟导入的const 11 月前 |
![]() |
Natty · Visual Studio中缺少“代码覆盖率结果” 11 月前 |