也许这是一个天真的问题,但我想知道这个主题中有经验的人的经验......
我想知道什么是基本的和最好的"事情"应该在Hibernate实体中进行单元测试。我解释自己好一点:
我想到的另一个不同的问题是,如果例如输入空值,我应该抛出异常吗?或者这个"层/级"太低而不能抛出异常。
我非常感谢您的时间和经验!
答案 0 :(得分:2)
我认为你的意思是"实体"当提到一个" POJO"。
无需测试实体或其关联。如果您遇到故障,则在测试DAO或服务层时会向您显示。
您不应直接从实体中抛出任何异常。验证任务由验证器完成,例如Hibernate注释或自定义验证器对象。
您应该测试作为公共API一部分的每个类和方法,并且除了获取或设置属性以及其他琐碎行为之外,客户端还要使用这些类和方法。如果它是一个简单的CRUD操作,你仍然需要测试一切是否按预期运行(在这个阶段你可能会发现一些关于关系等的怪癖)。
答案 1 :(得分:1)
我不是TDD专家,只是我的个人意见: 我并不是强迫性的,但我希望每个实体至少具有一个基本理智,看它实际到达数据库 - 即一个保存并检索它的简单方法。 如果权利包含一些扭曲(关系,复合键等),则更是如此。 如果我有一个稍微有趣的场景,我可以直接用它开始 - 例如。保存列表并执行复杂查询)。
我不会测试每一个约束,但也许这是品味/要求的问题。 关于null示例,您是指在Entity的setter中进行验证(例如setPrice())吗?通常我不会,我会把它留给休眠约束。一个原因是我的实体可能会用于其他场景 - 例如从有意丢失数据的客户端/文件中读取,让服务器完成丢失的数据并保存(如果客户端/文件数据显着混乱,我会使用专用的DTO,但对于简单的情况,我会使用专用的DTO。 d解决原始对象 - 尽管我们在团队中有一个关于它的哲学论证。
祝你好运:)