gpt4 book ai didi

java - 一个测试用例的测试数据反射(reflect)在另一个测试用例中

转载 作者:行者123 更新时间:2023-12-03 05:37:50 25 4
gpt4 key购买 nike

我试图在单元测试中使用@sql和@sqlgroup。我有2个测试用例,分别是testA和testB。 testA的sqlgroup是

    @SqlGroup({
@Sql(value = "classpath:test/scripts/testA-service/before-test.sql",
executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD),
@Sql(value = "classpath:test/scripts/testA-service/before-testA.sql",
executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD),
@Sql(value = "classpath:test/scripts/testA-service/after-test.sql",
executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD)
})

testB的sqlgroup是
  @SqlGroup({
@Sql(value = "classpath:test/scripts/testB-service/before-test.sql",
executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD),
@Sql(value = "classpath:test/scripts/testB-service/before-testB.sql",
executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD),
@Sql(value = "classpath:test/scripts/testB-service/after-testB.sql",
executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD),
@Sql(value = "classpath:test/scripts/testB-service/after-testB.sql",
executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD)
})

在before-testA.sql中,我在名为TABLE1的表中插入了一些随机值。在testA-service的after-test.sql中,我截断了TABLE1。

在testB-service的before-test.sql中,如果存在TABLE1,则将其删除,然后再次创建它。我再次在表1中插入一些随机值。在testB-service的after-test.sql中,我截断了TABLE1。

在运行测试用例testB时,正在使用的TABLE1中的值不是第二次插入的值。而是使用第一次插入的值。

我正在使用HSQLdb。此问题不是在本地出现,而是在prod / dev服务器中出现。

最佳答案

如果这是一个进程中的文件:数据库,并且两个测试是两个单独的进程,请确保在第一个测试的AFTER_TEST末尾执行“SHUTDOWN”。

使用HSQLDB服务器 hsql:连接,或者当两个测试在同一Java进程中并且您的数据库是内存:时,不应执行“SHUTDOWN”。在第二种情况下,它将失去第一种测试所完成的一切。

关于java - 一个测试用例的测试数据反射(reflect)在另一个测试用例中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54807983/

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