gpt4 book ai didi

mysql - 获取整个表内容的单元测试 SQL 查询

转载 作者:行者123 更新时间:2023-11-30 22:17:45 24 4
gpt4 key购买 nike

我正在尝试对一个函数进行单元测试,该函数用于获取数据库中表格的全部内容。但是,我不确定测试查询的最佳方法是什么。通常,如果我正在测试一个获取与某种特定 ID 或其他唯一标识符相关联的数据的查询,我会将数据插入数据库,然后确保我得到相同的信息。

然而,在这种情况下,我已经有了一个现有数据池。表中有数百条记录,我不想对它们进行硬编码以进行比较。如果我这样做的话,每次将新数据添加到表中时,我还必须更新测试。如果我不对数据进行硬编码,我将不得不对同一数据运行第二个查询以获取用于测试结果的信息,这几乎就像将函数与自身进行比较。

我可以使用的一个潜在解决方案是在测试脚本的开头创建我要测试的表的副本,并将一组预定义的数据插入其中,运行测试,然后回滚我的更改。但是我不确定这是否是测试我的功能的最佳方式。

有没有更好的方法来测试这种查询?

最佳答案

测试的最佳实践是拥有一个单独的测试环境(包括数据库的内容),在每次测试开始之前将其可靠地设置为已知状态。这样,测试就可以具有高度针对性、相互隔离并保持可维护性。

执行此操作的最简单方法是在测试应用时为您的应用设置不同的配置,例如,这样您就可以连接到不同的测试数据库。

那么流程是这样的:

  1. 在您的测试设置中,您将向表中添加一些硬编码行(这称为夹具)。
  2. 在您的实际测试中,您检查函数返回的行是否是您在设置中输入的行。
  3. 在您的清理代码中,您将删除表中的所有数据。

最后一步将测试数据库返回到所有测试都可以采用的干净状态。

关于mysql - 获取整个表内容的单元测试 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37681525/

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