我有很多关于Spring Boot
存储库层的问题。
我的问题是:
Spring Boot
我们是否应该为没有任何自定义代码或查询的存储库层编写单元测试和集成测试?
为存储库层编写集成测试的最佳方法是Spring Boot
什么?我列出了以下两种方法。在这两种方法中,哪一种更好。是否有任何最佳实践我应该遵循另一个?
如果我的上述问题#1 的答案是肯定的,那么我如何为存储库层编写单元测试Spring Boot
?
CurrencyRepository.java
@Repository
public interface CurrencyRepository extends CrudRepository<Currency, String> {
}
由于这使用嵌入式 H2 DB,因此它是集成测试而不是单元测试。我的理解正确吗?
CurrencyRepositoryIntegrationTest.java(方法 1)
@RunWith(SpringRunner.class)
@DataJpaTest
public class CurrencyRepositoryIntegrationTest {
@Autowired
private TestEntityManager entityManager;
@Autowired
private CurrencyRepository repository;
@Test
public void testFindByName() {
entityManager.persist(new Currency("USD", "United States Dollar", 2L));
Optional<Currency> c = repository.findById("USD");
assertEquals("United States Dollar", c.get().getCcyNm());
}
}
CurrencyRepositoryIntegrationTest2.java(方法 2)
@RunWith(SpringRunner.class)
@SpringBootTest(classes = DemoApplication.class)
public class CurrencyRepositoryIntegrationTest2 {
@Autowired
private CurrencyRepository repository;
@Test
public void testFindByName() {
repository.save(new Currency("USD", "United States Dollar", 2L));
Optional<Currency> c = repository.findById("USD");
assertEquals("United States Dollar", c.get().getCcyNm());
}
}
撒科打诨
相关分类