![]() |
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的使用是否正确。 |
![]() |
cluster1 · 采取独立的新行动的好处是什么? 5 月前 |
![]() |
Robert · 使用JSON或哈希时,将NULL替换为NIL 5 月前 |
![]() |
Fred Willmore · Rails控制器不呈现任何模板 12 月前 |
![]() |
Diogo Amaral · 实现API请求的正确方式 1 年前 |
![]() |
Meknassih · 在控制器方法中分配给模型没有任何作用 1 年前 |
![]() |
Michael Ding · Rails上的默认会话到期问题 1 年前 |
|
Flávio · 基于另外两个生成数组 1 年前 |