gpt4 book ai didi

java - 用于数据库代码的 JUnit

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:34:13 24 4
gpt4 key购买 nike

我一直在尝试实现单元测试,目前有一些代码可以执行以下操作:

  1. 查询外部数据库,加载进入提要表
  2. 查询 View ,这是我的提要和数据的增量表,更新数据表以匹配饲料表

我的单元测试策略是这样的:

我有一个可以自由操作的测试数据库。

  1. 在 setUP() 中,将一些数据加载到我的测试数据库中
  2. 运行我的代码,使用我的测试数据库作为源
  3. 检查数据表,检查计数和某些记录的存在/不存在
  4. 清除测试数据库,加载不同的数据集
  5. 再次运行代码
  6. 再次检查数据表

很明显,我已经设置了加载到源数据库中的数据集,这样我就知道应该添加、删除、更新等某些记录。

这样好像有点麻烦,应该有更简单的方法吧?有什么建议吗?

最佳答案

您的意图是测试生成增量的 View ,还是测试您的代码是否正确地添加、删除和更新以响应 View ?

如果你想测试 View ,你可以使用像DBUnit这样的工具。用您手动计算增量的各种数据填充您的提要和数据表。然后,对于每个测试,您将验证 View 是否返回匹配集。

如果您想测试您的代码如何响应 View 检测到的差异,我会尝试抽象出数据库访问。我想象一个 java 方法,您可以向其传递结果集(或 POJO/DTO 的列表)并返回要添加的参数对象数组(再次,或 POJO)的列表。其他方法将解析要删除和更新的项目的差异列表。然后您可以创建一个模拟结果集或 pojo,将它们传递给您的代码并验证是否返回了正确的参数。所有这些都无需触及数据库。

我认为关键是将您的流程分解成多个部分并尽可能独立地测试每个部分。

关于java - 用于数据库代码的 JUnit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com