使用Spring Boot和MySQL进行集成测试

时间:2016-11-05 21:44:19

标签: spring spring-boot spring-data integration-testing

我熟悉Spring Data JPA,我用这种声明测试存储库(Spring 4):

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {PersistenceConfig.class})
@Sql({"classpath:it-data.sql"})
public class MyRepositoryIT {

    @Autowired
    private MyRepository repository;

    @Test
    public void someTest() {
        ...
    }
}

所以我负责创建MySQL模式和表,但测试类插入测试数据(it-data.sql),src/test/resources/persistence.properties包含数据源配置。

现在我想在Spring Boot项目中做同样的事情。我编写了一个有效的简单项目(一个使用服务来检索数据的控制器,这要归功于存储库从MySQL数据库获取数据)。 问题是我无法编写仅测试存储库的简单测试(我不想仅仅为了测试存储库而加载整个应用程序),我得到上下文错误或数据源配置错误。

开始
@RunWith(SpringRunner.class)
public class MyRepositoryIT {

    @Autowired
    private MyRepository repository;

    @Test
    public void someTest() {
        ...
    }
}

并将src/main/resources/application.properties复制到src/test/resources/application.properties(只是更改架构名称),我使用@DataJpaTest@ContextConfiguration(classes = Application.class)@Sql,{{尝试了大量的组合1}},@SpringBootTest@AutoConfigureTestDatabase等。但没有任何作品。

因此,知道我的测试中已存在一个MySQL数据库,我应该使用哪些注释将数据插入其中然后测试自动存储的存储库?
感谢。

0 个答案:

没有答案