测试问题、测试顺序和自增

Testing problem, test order and auto increment

我正在 spring 中进行集成测试。我目前正在测试控制器层,遇到问题需要帮助。

我现在有几个功能,比如 crud 操作等等。
问题是在使用集成测试进行测试时,它涉及测试顺序和自动增量
在测试数据库中(mysql 数据库)。

当我 运行 一个接一个地进行测试时,它们都有效并且成功了,但是当我 运行 一次全部完成时,
关于测试class,因为执行顺序,有几个测试有错误。

比如先执行一个添加测试。在里面,添加之后,当然,我删除了我添加到数据库中的项目,但是这并没有重新启动自增,这代表其他测试有问题。

我通过修改其他测试解决了这个问题,但我认为这不是正确的解决方案。 我希望我很好地解释了问题所在。 这个问题有哪些可能的解决方案?每次测试后是否可以重启自增

如果有人解决了这个问题并且有人救了我将不胜感激。谢谢。

为什么在测试时将数据持久化到数据库中。 (而不是嘲笑)

测试用例的执行顺序不固定。我们不应该让一个测试用例依赖于另一个测试用例。

在此处查看 CRUD 测试。

https://howtodoinjava.com/spring-boot2/testing/rest-controller-unit-test-example/

在这里,我不确定但认为我找到了解决方案。

我觉得可以用这两种方式:

一个在注解 @DirtiesContext(methodMode = DirtiesContext.MethodMode.BEFORE_METHOD) 的帮助下重新加载应用程序上下文并重新启动所有内容但会减慢测试的执行速度。

另一种方式是使用 sql 注释 @Sql(statements = "ALTER TABLE role AUTO_INCREMENT = 2")
我们在测试方法之前调用并使用 sql 语句重新启动自动增量。

我想请您评论一下这个解决方案好不好。当然欢迎任何建议。 谢谢