【发布时间】:2019-11-27 14:24:06
【问题描述】:
我正在使用内存数据库(H2)进行集成测试,以便我可以使用已知值填充存储库,使用存储库初始化服务实现。这是我的测试课
@RunWith(SpringRunner.class)
@TestPropertySource("classpath:application-test.properties")
@SpringBootTest
public class ManufacturerServiceH2ImplTest {
@Autowired
private ManufacturerRepository manufacturerRepository;
@Autowired
ManufacturerServiceImpl manufacturerServiceImpl;
@Test
public void testManufacturerCreate() throws Exception {
//Create Manufacturer
Manufacturer manufacturer = new Manufacturer();
manufacturer.setManufacturerId("SSS");
manufacturer.setManufacturerName("WWW");
//Save Manufacturer in Inmemory
Manufacturer manufacturerInMemory = manufacturerRepository.save(manufacturer);
//Service Implementation
StResponse createManufacturer = manufacturerServiceImpl.createManufacturer(manufacturer);
//Compare the result
}
}
服务实现应使用内存数据库中保存的数据,并执行少量业务验证。我在这里面临的问题是服务实现实际上正在考虑指向实际数据库(在这种情况下为 postgres)而不是指向内存数据库的manufacturerRepository 实例。关于如何将manufacturerRepository 实例注入到manufacturerServiceImpl 服务实现中的任何帮助,该服务实现指向内存数据库
【问题讨论】:
-
我不是测试专家,但我认为在这种情况下正确的术语是集成测试而不是单元测试,因为整个 Spring Boot 上下文已经开始
标签: java spring spring-boot jpa junit