我在聚合根(AR(中得到了多个值对象(VO(。
每个VO在创建时都会进行不变的检查,例如字符串最小/最大长度、regexp等。
每个VO都是在创建AR时创建的,并且在100%覆盖的情况下对AR进行单元测试。
既然AR是在应用程序服务中创建的,并且AR及其VO不能被模拟,那么在测试应用程序服务时,我是否应该重新测试所有可能的不变量?感觉我编写的测试与我已经为AR编写的测试非常相似,但同时,如果我不为应用程序服务重复这些测试,我无法保证不变量会得到验证。
我想你已经回答了自己的问题。如果您需要保证不变量将被验证,那么您必须编写测试。为什么答案应该是";是";但我不认为有什么理由比这更好。
与我上面的回答分开:如果没有更多信息,我不能肯定,但一般来说:当你有一个像你描述的那样的设置时,AR中的所有测试都是";触摸";你的不变量会偶然而不是特别地这样做。您的测试还必须能够作为代码的文档,将可维护性提升到一个新的水平。为此,您应该编写专门练习不变量的测试。