인프런 커뮤니티 질문&답변
아이템서비스 테스트문 질문입니다
작성
·
333
0
현재 강의 중 코드를 그대로 테스트하고 있었습니다.
그런데 itemservice의 경우 디비에 넣지 않은 상태면 id가 정해지지있지 않고, 그것을 이용해 업데이트와 삽입을 구분짓고 잇지 않습니까?
그러면 이경우엔 어서션 코드를 어떻게 짜야 좋을까요ㅠ
우선 지금은 제가 이름을 통해 찾는 함수를 추가해서 테스트를 진행해서 통과 시켰는데요
어떤게 좀더 효율적이고 실무적인 방법인지 알고싶습니다.
답변 1
0
안녕하세요. 퉁그리님, 공식 서포터즈 David입니다.
.
아이템을 저장하는 메서드에서 저장된 아이템 아이디를 반환하도록 해주면 됩니다.
Long saveItem(Item item) {
em.persist(item);
return item.getId();
}
그러면 테스트에서 저장 메소드의 반환 값으로 아이템 아이디를 받아올 수 있습니다.
그걸 가지고 findOne을 수행하면 저장된 아이템이 반환될텐데 그것이 null인지 아닌지 체크해주는 방식으로 테스트를 수행하시면 됩니다.
필요하다면 기존 item과 반환된 item의 상태를 비교해주는 테스트를 수행할 수도 있습니다.
.
감사합니다.






네