gtr*_*rak 4 java testing tdd junit java-ee
这是场景.我有VO(值对象)或DTO对象,它们只是数据的容器.当我把它们分开并将它们分开保存到一个数据库中(由于很多原因)没有优雅地映射到VO时,我想测试是否在数据库中成功创建每个字段并成功读回重建VO.
有没有办法可以测试我的测试是否覆盖了VO中的每个领域?作为解决方案的一部分,我有一个关于使用反射来迭代VO字段的想法,但也许你们之前已经解决了这个问题?
当我在VO中添加字段时,我希望此测试失败,并且不记得在我的测试中添加对它的检查.
dev环境:使用JUnit,Hibernate/Spring和Eclipse
保持简单:每个VO/DTO编写一个测试:
生产性代码将不断发展,并且还需要维护测试.使测试尽可能最简单,即使它们是重复的,恕我直言也是最好的方法.过度设计测试或测试框架本身以使测试通用(例如通过读取带反射的字段并自动填充VO/DTO)会导致几个问题:
测试和生产代码本质上是非常不同的.在生产代码中,您尝试避免重复并最大化重用.生产代码可能很复杂,因为它经过测试.另一方面,您应该尝试尽可能简单地进行测试,并且重复是可以的.如果重复的部分被破坏,则测试将无论如何都会失败.
当生产代码发生变化时,这可能需要对几个测试进行简单的更改.问题是测试被视为无聊的代码.但我认为这就是他们的方式.
如果我的问题不对,请告诉我.