테스트 코드 작성

5w31892p·2023년 4월 24일
0

테스트코드

목록 보기
2/2

테스트 코드 작성은 이전 프로젝트에 있던 테스트 코드를 참고하여 작성하였다.

닉네임 수정 테스트 코드 작성 후 Strict stubbing argument mismatch 에러가 발생하였다.
이전 프로젝트에 있던 코드와 동일하는데도 왜 이런 문제가 뜨는지 알 수가 없어서 chatGTP에 질문하였더니,
findByUsername() 메소드르 두 번 이상 호출하면서 인자 값이 다른 경우에 발생하는 에러메시지라는 것이였다.

에러메시지가 났던 코드는 아래와 같았다.

given(userRepository.findByUsername(user.getUsername()))
.willReturn(Optional.of(user));

이 코드에서 findByUsername 메소드의 인자 값을 `newUser.getUsername()` 으로 적었다.

이 부분에서 인자값을 제대로 받지 못해 에러가 발생하고 있었고, chatGTP에서 알려준 해결 방안은 아래와 같았다.
해당 부분을 anyString()으로 변경하면 목 객체를 생성할 수 있고,
findByUsername 메소드가 어떤 문자열 인자값이 전달되도 Optional.of(user)를 반환할 수 있다는 것이였다.

given(userRepository.findByUsername(anyString()))
.willReturn(Optional.of(user));

도움을 받아 위와 같이 수정하니 테스트 성공의 녹색이 보였다.


문자열의 인자값을 제대로 받지 못할 때에는 andString()을 사용하게 되면 어떤 문자열 인자값이 들어와도 Optional.of(user)을 반환할 수 있다.

0개의 댓글