gpt4 book ai didi

mysql - 测试用例编写

转载 作者:行者123 更新时间:2023-11-29 00:50:36 25 4
gpt4 key购买 nike

如何编写SQl查询的测试用例?

  • 是否有可遵循的程序或格式。
  • 例如,我有一个带有复杂连接的插入查询,以及如何为此开发测试用例。

最佳答案

这似乎很有趣,因为我不确定您的要求。

恕我直言,测试用例很适合为功能或系统测试(或一般的黑盒测试)编写。测试用例是需求规范或用户故事的翻译。在测试查询的情况下,我不确定我们是否需要编写测试用例(这变成了白盒测试)。在这种情况下,为它们编写单元测试比创建手动测试用例更好。可能是我在这里遗漏了什么。

但是考虑到您有不同的意见,我不知道,以下是我的想法。

如果您的用户故事或需求规范明确讨论了联接的数量和类型、要使用的表等,那么您可以单独编写测试用例以检查是否存在任何偏差。例如。一个测试用例可以检查类型连接以检查它们是否符合要求,另一个测试用例可以验证所使用的表,以检查开发人员是否仅使用了预期的表而没有使用其他任何表。

编辑:如果您愿意编写单元测试,请查看 DBUnit这对你有帮助

  1. 从单元测试用例轻松创建到数据库的连接
  2. 以 XML 格式创建示例数据并将它们加载到您的表中
  3. 在执行一些数据库事务后验证数据或单步断言数据

例如,考虑以下场景。你有一个学校的数据库。您现在已经编写了一个复杂的查询来检索学生列表。您必须检查此查询是否正常工作。然后您可以使用 DBUnit 或 Unitils 创建单元测试用例这将动态创建您的表并加载您的示例数据,执行您的查询,然后将结果集与您期望的数据进行比较。所有这些都在一个自动化单元测试中。

这是 Unitils 的一个例子,

公共(public)类 UserDAOTest 扩展了 UnitilsJUnit4 {

@Test
@DataSet("UserDAOTest.testFindByMinimalAge.xml")
public void testFindByMinimalAge() {
List<User> result = userDao.findByMinimalAge(18);
assertPropertyLenientEquals("firstName", Arrays.asList("jack"), result);
}

在执行此测试之前,来自此"UserDAOTest.testFindByMinimalAge.xml" 的示例数据将加载到您配置的表中,稍后将执行其中的测试和查询。类似地,如果您使用注释 @ExpectedDataSet 而不是 @DataSet,则此 xml 中的数据将用于在执行测试后比较结果集。

如果您使用的是 JPA-Hibernate,您还可以执行 effective unit testing通过使用内存数据库。

希望这对您有所帮助。

关于mysql - 测试用例编写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8707749/

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