我熟悉Spring数据JPA和我测试用这种声明的库(春季4):集成测试与Spring引导和MySQL
@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项目中做同样的事情。我编写了一个简单的项目(一个Controller使用服务来检索数据,这要归功于从Repository获取来自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
,@SpringBootTest
,@AutoConfigureTestDatabase
,@DatabaseSetup
等,但没有任何作品试图万吨组合。
因此,知道我有一个MySQL数据库,该数据库已经存在于我的测试中,我应该使用什么注释来向其中插入数据,然后测试自动装载的存储库?
谢谢。
存储库集成测试,所以没有什么嘲笑;-) –