Mysql 测试用例编写

Mysql 测试用例编写,mysql,testing,testcase,Mysql,Testing,Testcase,如何为SQl查询编写测试用例 是否有任何程序或格式可遵循 例如,我有一个带有复杂连接的insert查询,以及如何为此开发testcase 这似乎很有趣,因为我不确定您的要求 总之,编写测试用例是为了进行功能或系统测试(或一般的黑盒测试)。测试用例是需求规范或用户故事的翻译。在测试查询时,我不确定是否需要编写测试用例(这将成为白盒测试)。在这种情况下,最好为它们编写单元测试,而不是创建手动测试用例。可能是我错过了什么 然而,考虑到你有一个不同的意见,我不知道,以下是我的想法 如果您的用户故事或需

如何为SQl查询编写测试用例

  • 是否有任何程序或格式可遵循
  • 例如,我有一个带有复杂连接的insert查询,以及如何为此开发testcase

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

    总之,编写测试用例是为了进行功能或系统测试(或一般的黑盒测试)。测试用例是需求规范或用户故事的翻译。在测试查询时,我不确定是否需要编写测试用例(这将成为白盒测试)。在这种情况下,最好为它们编写单元测试,而不是创建手动测试用例。可能是我错过了什么

    然而,考虑到你有一个不同的意见,我不知道,以下是我的想法

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

    编辑:如果您愿意编写单元测试,请查看有哪些帮助

  • 从单元测试用例轻松创建到DB的连接
  • 以XML格式创建示例数据并将其加载到表中
  • 在执行某些数据库事务或在单个步骤中断言数据后验证数据
  • 例如,考虑下面的场景。你的学校很好。您现在已经编写了一个复杂的查询,用于检索学生列表。您必须检查此查询是否正常工作。然后,您可以使用DBUnit或创建一个单元测试用例,它将动态创建表并加载示例数据,执行查询,然后将结果集与预期的数据进行比较。全部在一个自动化单元测试中

    这是Unitils的一个例子

    公共类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”)
    public void testFindByMinimalAge(){
    列表结果=userDao.findByMinimalAge(18);
    AssertPropertyLineeQuals(“名字”,Arrays.asList(“杰克”),result);
    }
    
    }

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

    如果您使用的是JPA Hibernate,那么也可以使用内存中的DB


    希望这有帮助。

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

    总之,编写测试用例是为了进行功能或系统测试(或一般的黑盒测试)。测试用例是需求规范或用户故事的翻译。在测试查询时,我不确定是否需要编写测试用例(这将成为白盒测试)。在这种情况下,最好为它们编写单元测试,而不是创建手动测试用例。可能是我错过了什么

    然而,考虑到你有一个不同的意见,我不知道,以下是我的想法

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

    编辑:如果您愿意编写单元测试,请查看有哪些帮助

  • 从单元测试用例轻松创建到DB的连接
  • 以XML格式创建示例数据并将其加载到表中
  • 在执行某些数据库事务或在单个步骤中断言数据后验证数据
  • 例如,考虑下面的场景。你的学校很好。您现在已经编写了一个复杂的查询,用于检索学生列表。您必须检查此查询是否正常工作。然后,您可以使用DBUnit或创建一个单元测试用例,它将动态创建表并加载示例数据,执行查询,然后将结果集与预期的数据进行比较。全部在一个自动化单元测试中

    这是Unitils的一个例子

    公共类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”)
    public void testFindByMinimalAge(){
    列表结果=userDao.findByMinimalAge(18);
    AssertPropertyLineeQuals(“名字”,Arrays.asList(“杰克”),result);
    }
    
    }

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

    如果您使用的是JPA Hibernate,那么也可以使用内存中的DB


    希望这有帮助。

    不同的数据库有不同的测试套件。 MySQL/Percona Server/MariaDB都使用MySQL测试运行的变体:

    《细雨》也使用了一种变体:

    这些是简单的基于差异的测试。您编写希望看到的查询,让运行人员执行它们,然后验证结果。将预期输出保存在.result文件中,然后