我需要使用spring和Junit测试带有H2数据库的JPA,我在网上找到很多方法,但我不确定最好的那个。
非常感谢你。
答案 0 :(得分:1)
确实有几种配置Spring / JPA测试套件的方法,很难找到最好的方法。只要它们涵盖了下面提到的要点,您就可以自由使用它们,只需尝试一下,看看哪一套最适合您。
@ContextConfiguration(initializers = ConfigFileApplicationContextInitializer.class, locations = "classpath:applicationContext-integrationtest.xml")
@ActiveProfiles("integrationtest")
@Ignore("An abstract base class for the tests")
public abstract class AbstractIntegrationTest extends AbstractTransactionalJUnit4SpringContextTests {
}
确保在集成测试属性文件中覆盖控制数据源配置的属性。主要的DB特定属性是:
sa
jdbc:h2:database/integrationtest
org.h2.Driver
org.hibernate.dialect.H2Dialect
答案 1 :(得分:0)
尝试为Spring应用程序创建测试配置文件,并在该配置文件中创建H2数据源并注入相同的内容。如果您的是Spring引导项目,那么可以使用application-dev.properties或application-test.properties等属性文件来分析数据源。否则,在不同的配置文件下创建不同的bean定义。默认情况下,Maven / Gradle使用profile = test运行测试。
因此,在运行测试时,将获取H2数据库。内存数据库中的H2会更好,因为每次测试开始时都可以删除/创建。
如果你正在寻找任何特定的规范/措施来决定好的方法,请在此评论。
答案 2 :(得分:0)
我正在使用这个库。我工作得非常好,而且不那么大惊小怪。 https://github.com/mmnaseri/spring-data-mock