结合时@SpringBootTest
,@Transactional
我的测试冻结并且永远不会恢复。
我在这里建立了一个问题的演示。
getAgain
由于@Before
. 为了解决这个问题,我通常会@Transactional
在类上方包含一个类,以便在每次测试后自动回滚我的更改。但是,这会导致测试冻结并且永远不会恢复。
知道为什么这两个注释不能很好地结合在一起吗?
结合时@SpringBootTest
,@Transactional
我的测试冻结并且永远不会恢复。
我在这里建立了一个问题的演示。
getAgain
由于@Before
. 为了解决这个问题,我通常会@Transactional
在类上方包含一个类,以便在每次测试后自动回滚我的更改。但是,这会导致测试冻结并且永远不会恢复。
知道为什么这两个注释不能很好地结合在一起吗?
或者,您可以使用@SqlGroup
初始化数据库而不是ResourceDatabasePopulator
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@SqlGroup({
@Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, scripts = "/testbed.sql"),
@Sql(executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, scripts = "/clear.sql") })
public class UserControllerTest {
我已经对您的示例项目进行了更改,并且效果很好。你可以在这里看到它们:springboottest-transactional