728x90
Test 코드 작성
처음에 작성할 때는 구글링을 해서 참고하여 작성했다.
read를 확인하기 위해 @Transactional을 주석 처리하고 실행했더니 read도 잘 되는 것 같은데
왜 @~로 나오는건지 궁금해서 튜터님께 질문을 드렸었다.
@SpringBootTest
@Transactional
class RegistryRepositoryTest {
@Autowired RegistryRepository registryRepository;
@Test
void registry등록() throws Exception {
Registry registry = new Registry();
registry.setTitle("첫번째 글 작성");
registry.setMain("내가 첫번째임");
Registry newRegistry = registryRepository.save(registry);
System.out.println("registry : " + newRegistry);
}
@Test
void registry읽기() throws Exception {
Optional<Registry> registry = registryRepository.findById(1L);
registry.ifPresent(readRegistry -> {
System.out.println("Registry : " + readRegistry);
System.out.println("Registry : " + readRegistry.getTitle());
});
}
}
여기서 왜 newRegistry 변수를 왜 사용했는지 질문을 하셔서
Registry newRegistry = registryRepository.save(registry);
System.out.println("registry : " + newRegistry);
대신
registryRepository.save(registry);
System.out.println("registry : " + registry);
로 변경했다.
그런데도 답이 같아서 여쭤보니 Registry에 @ToString을 작성하라고 하셨다.
(*ToString 어노테이션을 클래스 상단에 써주면 변수 값들을 리턴해주는 toString 메소드를 자동 생성해준다.)
출처 : [ Lombok 어노테이션 설명 ]
그랬더니 잘 떴다.
그런데 이 코드가 맞게 작성한건지 궁금해서 여쭤봤다.
튜터님이 테스트 코드를 통해서 내가 체크하려고 하는 부분이 무엇인지 여쭤보셨고
저장과 읽어오는 부분이 잘 되는지 확인하고 싶다고 말씀드렸다.
그래서 튜터님이 저장이 잘 되는지 어떻게 확인을 하냐고 여쭤보셨고
print를 하거나 get으로 가져와서 확인했다고 말씀드렸다.
튜터님이 print() 하는 것은 테스트 코드로는 의미가 없고,
지금 케이스에서는 저장하고 다시 조회해서 값이 일치하는지 정도를 비교하도록 해야한다고 말씀하셨다.
그래서 나는 assertThat을 이용해 isEqualTo()로 비교 구문을 작성하여 다시 여쭤봤다.
맞게 작성한건지는 내일 확인할 수 있을 것 같다.
728x90
'TIL' 카테고리의 다른 글
149일차(모험 58일차) - Test 코드 작성 2 (0) | 2022.02.09 |
---|---|
148일차(모험 57일차) - 프로젝트 의견 조율 (0) | 2022.02.09 |
144일차(모험 53일차) (0) | 2022.02.05 |
143일차(모험 52일차)- front & backend (0) | 2022.02.03 |
142일차(모험 51일차) (1) | 2022.02.02 |