测试之间的H2数据库为空

时间:2018-09-16 11:33:16

标签: spring hibernate jpa junit integration-testing

我目前正在解决以下问题。目前,对于每个集成方案,我都有一个单元测试类。此外,我还有诸如在数据库(嵌入式H2 db)中创建或检索数据的方法。我的问题是创建后(首先调用创建-@FixMethodOrder(MethodSorters.NAME_ASCENDING)),我想在下一个方法调用中从数据库中检索实体。但是,我的数据库为空,因此我无法真正检索上一次调用中存储的详细信息。这是我的课程的定义:

@ActiveProfiles("integration-test")
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
@WebAppConfiguration
@Import({ TestApplicationConfig.class })
@EnableJpaRepositories("com.myapp.persistence")
@Transactional
@DirtiesContext(classMode = ClassMode.AFTER_CLASS)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class SimpleControllerTest extends AbstractTest { ... }

在所有测试方法调用之间共享状态非常重要。每次执行测试时,都会删除数据库并重新创建数据库。这是一个Spring REST应用程序,服务层已经使用@Transactional进行了注释,在持久层使用了带有Hibernate的JPA。

感谢您的帮助。

0 个答案:

没有答案