Java Spring引导-单元测试Spring数据JPA存储库
我在Spring数据的帮助下创建了一个存储库(比如MovieRepository)Java Spring引导-单元测试Spring数据JPA存储库,java,spring-boot,junit,spring-data,Java,Spring Boot,Junit,Spring Data,我在Spring数据的帮助下创建了一个存储库(比如MovieRepository) public interface MovieRepository extends JpaRepository<Movie, Short> {} 我应该测试这个方法吗?没有理由为存储库编写单元测试,因为您自己并没有编写任何实现代码。如果要测试查询,最好编写集成测试。这些都是通过使用内存中的数据库来完成的,测试应该在Spring容器中运行。Spring Boot对集成测试有很多支持: 测试应该使用
public interface MovieRepository extends JpaRepository<Movie, Short> {}
我应该测试这个方法吗?没有理由为存储库编写单元测试,因为您自己并没有编写任何实现代码。如果要测试查询,最好编写集成测试。这些都是通过使用内存中的数据库来完成的,测试应该在Spring容器中运行。Spring Boot对集成测试有很多支持:
- 测试应该使用
运行,它会显示Spring容器李>@RunWith(SpringRunner.class)
-这些应该与@DataJpaTest
结合使用,以便运行内存中的数据库李>SpringRunner.class
@RunWith(SpringRunner.class)
@DataJpaTest
public class MovieRepositoryTests {
@Autowired
private MovieRepository myRepository;
@Test
public void findRelatedMoviesToMovieByIdTest() {
...
Page<Movie> movies= myRepository.findRelatedMoviesToMovieByIdTest(1, new PageRequest(1, 10));
...
}
}
@RunWith(SpringRunner.class)
@DataJpaTest
公共类电影定位测试{
@自动连线
私人电影收藏库;
@试验
public void findRelatedMoviesTovieByIDTest()公共无效{
...
Page movies=myRepository.findRelatedMoviesToMovieByIdTest(1,新页面请求(1,10));
...
}
}
值得一提的是,有时建议不要使用内存中的数据库,而是使用真实数据库的实例(当然,出于测试目的)。我的意思是,这不是必须遵守的规则。
@RunWith(SpringRunner.class)
@DataJpaTest
public class MovieRepositoryTests {
@Autowired
private MovieRepository myRepository;
@Test
public void findRelatedMoviesToMovieByIdTest() {
...
Page<Movie> movies= myRepository.findRelatedMoviesToMovieByIdTest(1, new PageRequest(1, 10));
...
}
}