数据库单元测试-测试数据创建

时间:2020-01-09 10:35:38  来源:igfitidea点击:

某些应用程序需要将大量测试数据插入数据库中,以便正确测试应用程序域逻辑。在每个单元测试中设置所有这些数据可能非常麻烦。

相反,我们可以创建一个"测试用例"对象,该对象能够为简单的测试用例设置数据。例如,在数据库中插入一个客户,并选择N个产品,依此类推。

这是一个这样的TestData类的简单示例。它只是一个标准的Java类,对此没有什么秘密。

public class TestData {

    public void insertCustomer() {
      // insert customer logic.
    }

    public void insertProducts() {
      // insert products for customer
    }

    pubic void setupCustomerSituation() {
      // insert customer with several products, in
      // various configurations.

    }

    //etc.

}

究竟要放在自己的TestData类中的方法取决于应用程序使用的数据。

另外,我们可能希望某些方法采用参数,而不是例如始终插入硬编码的客户或者产品等。

使用TestData类

一旦有了这样的TestData类,就可以在单元测试中使用和重用它。 " TestData"类可以包含各种业务方面的复杂测试数据设置,一旦对它们进行了一次编程,就可以轻松地在数据库中进行设置。

这是一个非常简单的用法示例:

@Test
public void testIt() {
  TestData testData = getTestDataInstance(); // get this from somewhere...

  testData.setupCustomerSituation();

  MyOperation operation = new MyOperation();

  operation.doIt();

  assertTrue(...);
  //etc.

}

TestData类的优点

TestData类的两个主要优点是:

  • 测试数据创建可以重复使用。
  • 可以记录TestData类,因此每个测试用例都可以解释它设置了哪些数据(业务状况)。