repository test
@RunWith(SpringRunner.class)
@DataJpaTest // repository 관련 빈만 등록, 의존성 추가한 h2 메모리 db 사용
public class PostRepositoryTest {
@Autowired
PostRepository postRepository;
@Test
@Rollback(false)
public void crudRepository() throws Exception {
// Given
Post post = new Post();
post.setTitle("hello spring boot common");
assertThat(post.getId()).isNull();
// When
Post newPost = postRepository.save(post);
// Then
assertThat(newPost.getId()).isNotNull();
// When
List<Post> posts = postRepository.findAll();
// Then
assertThat(posts.size()).isEqualTo(1);
assertThat(posts).contains(newPost);
// When
Page<Post> page = postRepository.findAll(PageRequest.of(0, 10));
// Then
assertThat(page.getTotalElements()).isEqualTo(1);
assertThat(page.getNumber()).isEqualTo(0);
assertThat(page.getSize()).isEqualTo(10);
assertThat(page.getNumberOfElements()).isEqualTo(1);
}
}
커스텀 메소드 추가 가능
Page<Post> findByTitleContains(String title, Pageable pageable);
long countByTitleContains(String title);