我想使用JUnit 4.9测试使用Hibernate 4.1实现的MyTypeDAO类。我有以下问题:
在我的DAO中,我有一个findById方法,它通过ID检索我的类型的实例。如何测试这种方法?
我做了什么:
有什么想法吗?什么是最佳实践?
我对save方法有同样的问题,因为在运行它之后,我需要检索save实例。在这里,我不认为我可以依赖我的findById方法,因为它尚未经过测试。
由于
答案 0 :(得分:4)
一种可能的方法是:
创建内存数据库以进行测试,从预定义的sql脚本加载此数据库的内容,然后针对此数据库测试DAO类。
每次开始测试时,都会使用sql脚本从头开始创建数据库,您将知道哪个id应该返回结果,哪个不应该返回。
See [DbUnit][1]
(来自satoshi的评论)
答案 1 :(得分:1)
我认为你没有多少选择来实现这一目标。进行正交测试(测试2件事或依赖测试的测试)不是一个好习惯。不过,您应该真正认为此异常有效且快速。你是对的:持久化对象并检索它是一个好主意,测试这个dao层。
其他选项包括在数据库中拥有您确定的记录并在其上测试检索(findById)。第二个测试是坚持一个物体并将其移除拆卸方法。
但实际上,测试加载和保存在一起会更简单,这很有意义。