【发布时间】:2013-10-07 17:24:09
【问题描述】:
如何编写一个包含数据库事务的 junit 测试用例,我们不确定输出.. 假设在基于几个条件查询后从查询或 ID 中获取计数。如果我们检查 count > 0 或 Id > 0 ,这是一个有效的比较吗?
【问题讨论】:
-
使用夹具初始化您的数据库或模拟它。
-
是的,一般来说,没有依赖可能处于未知状态的真实数据库的单元测试。
如何编写一个包含数据库事务的 junit 测试用例,我们不确定输出.. 假设在基于几个条件查询后从查询或 ID 中获取计数。如果我们检查 count > 0 或 Id > 0 ,这是一个有效的比较吗?
【问题讨论】:
测试的整个概念依赖于将实际状态与预期相匹配。 这意味着预期是明确定义的并且是事先知道的。
我猜你正在尝试检查交易,在这种情况下你应该模拟数据。
您可以从预定义的模拟数据(始终是相同的数据)开始,这样代码将查询现有数据,您将确切知道预期返回的内容。
或者,您可以在测试开始时创建随机数据并构建测试流程,以便您始终知道查询的结果。
虽然这些方法几乎相同,但当需要在同一架构/数据库上并行运行测试时,第二种方法会派上用场。 另一方面,这种测试的编码可能会有些棘手。
希望对你有帮助
【讨论】: