오늘은 기필코 개발이 아닌 다른 밀린 공부를 한다 다짐했건만.. 그렇지 못했다. 진짜 잠깐만 보려고했는데, 발생한 문제가 이상해서 잠깐이 계속이 되버렸다... 진짜 이 문제는 왜그런건지 아직도 잘 모르겠다. 원인이 너무 불분명하고 이상해서 참... 그랬다.
그래서 프로젝트 한김에 개발해야하는 것을 처리했다. 이것은 어제 해결한 문제와 거의 유사한 부분이었어서 크게 어렵지 않게 바로 해결할 수 있었다.
테스트 개선과 깨지기 쉬운 테스트?
오늘은 어제 새벽에 작업만 하고 코드를 깃헙에 못올려서 해당 부분만 올리고 마무리를 하려고했었다. 다시한번 어제 작성한 단위테스트를 확인하고, 전체 테스트를 실행했는데, 전체 테스트가엄청나게 오래걸리는 것이 아닌가? 이게 왠일인가 싶어서, 테스트가 다 돌아가기 전, 의심이 되는 테스트들을 하나씩 확인해 보았다.
내가 의심한 테스트는 카프카와 관련된 테스트라고 생각했다. 그리고 그것은 정확하게(?) 들어맞았다.
보면 알 수 있듯이, 테스트는 1분 타임아웃이 발생해도 테스트는 성공함을 볼 수 있다. 그 이유는 당시 해당 부분(ProductApplicationServiceTest)를 개발할 때, 어제 작성한 부분들을 작성하지 않았기 때문이다.
해당 부분은 어렵지 않게 수정할 수 있었다. 나는 카프카와 상호작용하는 것을 현 클래스(ProductApplicationService)에서 하는 것이 아닌 카프카 클래스에서 진행하기에, 해당 부분을 Stub 처리하면 되기 때문이다. 그런데 진짜 문제는 다른 것이었다.
깨지기 쉬운 테스트?
분명 전체테스트가 정상임을 확인하고 push를 했으나, 에러가 발생했다. 나는 바로 해당 테스트를 확인해보았다.
문제가 된 부분은 두 테스트 모두 동일했다. verify 를 통해 publish 가 1번만 호출이 되어야하는데 2번이 호출되어 에러가 발생했다는 것이다. 그런데 이게 웃긴게, 개별로 테스트를 진행하면 통과를하는데, 전체 테스트를 진행하면, 테스트가 실패한다.
나는 무엇인가 설정이 엮어있을것이라 예상했다. 하지만 꼬일 수가 없는게, 해당 코드들은 이곳에서만 사용되었는데... 의문이 들었다.
다시 한번 전체 테스트를 진행했더니, 어라? 이번엔 성공하네? 수정한게없는데? 다시 실행했더니 실패하네? 어이가 없었다.
처음에는 꼬인 부분을 찾아보려고 차분하게 하나하나 확인해보았었는데(이미 2시간넘게지남) 황당했다. 그래서 verify() 메서드 설정 중, 호출이 되는 횟수를 지정하여 테스트를 반복하여 진행해 보았다.
놀랍게도 두 사진의 테스트 모두 동일한 코드의 결과이다. 진짜 내가 알수가 없다... 결국에는 최대 2회까지 호출하는 것으로 설정해두고, 이 부분은 넘기기로하였다...
이걸로 거의 4시간을 녹였다.. 불명확한 에러는 블랙홀이다.. 분명 내가 어디선가 실수를 한 것일텐데... 조금 많이 답답하다..
신규 이슈 등록: 누락된 카프카 통합테스트를 추가한다.
이번 카프카 테스트를 진행하면서, 이전에 진행하지 않았던 카프카 통합테스트를 진행하고자 한다. 어렵지 않게 해결할 수 있을 것이라 생각하고, 잊지 않기위해 이슈로 등록했다. 어서빨리 이를 마무리하고서 작업해야지..!
그나저나 Product 이슈가 등록된지 벌써 한달이 됬다니... 말도안된다... 저것도 진짜 서둘러서 빨리 해야겠다.
진짜 시간이 미친것같다. 벌써 8월말이라니... 내일은 예비군이고.. 지금 프로젝트 1차로 빠르게 마무리하고, 이력서에 반영해야겠다.
다가오는 한주는 조금 더 시간을 효율적으로 활용하기위해 칸반보드를 사용해보고자 한다. 원래는 오늘 해야할 일들을 정리해두고, 내일부터 바로 하려고했는데, 시간이 늦어 내일 바로 정리하고, 적용해보도록 해야겠다.
조금만 더 잘해보자 !! 성연아 !!
'회고 > TIL' 카테고리의 다른 글
이력서 업데이트, 친구와 모각코 (0) | 2023.08.22 |
---|---|
예비군 훈련, TestContainer, 예측가능한 코드, 참조오류 (0) | 2023.08.21 |
드디어 메시징 테스트 진행, 거의 다 온 것 같다(?)[ 3AM, 문제해결 ] (0) | 2023.08.19 |
Application 계층 완료, Adapter 개발시작, 디자인패턴공부 (0) | 2023.08.17 |
출처 불분명스트레스, 테스트에 관하여, @Mock, @MockBean (0) | 2023.08.16 |