Ruby on Rails 模型测试与数据创建全解析
1. 模型测试的内容与方法
1.1 好的模型测试类的目标
一个好的模型测试类,其目标是让每个模型的单独测试文件尽可能覆盖该模型中 100% 的代码。虽然其他模型或控制器测试可能会偶然触及该模型的代码,但这不能替代在其自身测试文件中对特定模型进行有效的测试。测试应该尽可能贴近被描述的代码。
1.2 无需单独测试的内容
对于像 belongs_to 或 has_many 这样的关系存在性,无需编写单独的测试。因为 Rails 会对这些特性进行全面测试,如果没有预期的关系,测试会在各处失败。关系的存在应该由一个需要该关系来实现功能的测试驱动。
1.3 需要编写测试覆盖的内容
应该编写测试来覆盖验证,以确保有效对象和无效对象之间的差异符合预期。命名作用域介于关系和方法之间,简单的命名作用域可以像处理关系一样处理,但任何复杂的(例如带有 lambda 块的)都应该进行测试。
1.4 测试数量与类型
- 正常情况测试 :对正常、顺利路径的情况进行一次测试。
- 分支情况测试 :为代码中的每个替代分支编写一个测试。重构时,方法通常会被拆分为多个更小的方法。
- 错误情况测试 :根据需要,至少为已知的错误情况(如传递 nil 参数)编写一个测试。只有在确实需要错误情况执行特定操作,或者有理由怀疑预期的错误情况
超级会员免费看
订阅专栏 解锁全文
98

被折叠的 条评论
为什么被折叠?



