2010-09-12 65 views
3

假设我正在为UserDAO执行单元测试方法。我正在为UserDao的删除方法编写测试。我会先插入一个用户到数据库,然后调用删除方法,并验证对象是否仍然存在。单元测试DAO

我的问题是:对于删除单元测试,当我插入用户进行测试时,我应该调用UserDao的插入方法...还是最好不要调用任何方法的对象,我是测试和使用本地方式,比如说使用jdbc做插入,然后调用我的删除方法?

回答

1

DAO通常太简单了,我认为在测试上花费资源是不值得的。你的解释看起来就是这样。

只有当涉及到某些逻辑(构建更复杂的查询)时,我会考虑测试某些部分。

也许提供一些代码片断来帮助更多。

1

使用DBUnit或类似的东西来设置测试数据。 DBUnit允许您指定为测试插入的测试数据,甚至可以指定一个干净的插入,删除所有内容(从具有为其指定的测试数据的表中),然后只插入您想要的内容。如果测试彼此独立,那么最​​好不要让插入代码出现问题,导致依赖于其进行安装的其他测试出现问题。

+0

我一定会检查出来,但我想答案不回答我的问题。我猜没有使用DBUnit,你会如何回答我的问题。 – Glide 2010-09-21 23:15:49

+0

没有DBUnit,我仍然希望有一种方法来清理数据库并在每次测试之前设置数据,以便它们具有明确的启动状态并且不依赖于顺序。这意味着我仍然希望避免使用dao插入数据,因为它不那么明确。 – 2010-09-22 12:55:42