测试 - 如何处理创建新数据的集成测试

testing - How to approach integration tests that create new data

假设我有一个断言系统中新用户注册是否真的成功的测试:

RegistrationIntegrationTest#testRegister()

现在,这会在实际数据库中创建一个新的测试用户,因为我希望此测试在实际环境中 运行。这意味着测试不能一直是运行,对吧?我应该如何处理这些类型的测试?那些利用系统实际环境,操作真实数据的?

您可以使用以下其中一项:

  1. 如果可能,使用像 hsqldb 这样的内存数据库,您可以为每个 TestSuite/TestCase
  2. 重新创建或设置适当的数据库
  3. 如果被测方法是事务性的,运行 测试用例spring junit rollback true
  4. 如果您不能使用 1 或 2,您可以编写一个预先和 post 测试 sql 脚本来设置和清理您的数据库。您可以使用 dbunit
  5. 这样的框架