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);