-
20221012 TIL SpyBean VS. MockBeanTIL 2022. 10. 12. 10:52
이번 주 부터 본격적으로 스프링부트 TDD를 배우고 있는데,
테스트하는 과정에서 @SpyBean을 사용하고 있다.
그런데 무엇을 하는 친구인지 궁금해서 찾아보았다.
일단 @SpyBean을 이해하려면 Test Double을 이해해야 한다.
Test Double은 테스트를 할 때 원하는 부분의 테스트에 집중할 수 있게 관심사 밖의 부분을 대체 해준 것이다.
즉, 정말로 테스트하고자 하는 부분 외의 부분 중에 실제를 사용하기 곤란한 경우 Test Double을 이용하게 된다.
Mock, Spy등이 있다.
Mock은 껍데기만 있고, 나머지는 우리가 원하는대로 채워 넣어줘야 하고,
Spy는 특정 부분만 우리가 원하는 대로 작동하게 하고, 나머지는 그대로 작동하게 하고 싶은 경우 사용한다.
Spy라는 용어가 왜 붙었는지 이해가 잘 안갔었는데, 향로님의 블로그를 보고 바로 이해가 갔다. 감사합니다 향로님🙏
https://jojoldu.tistory.com/226
어떤 조직에 스파이가 있는 경우 한 두 명만 스파이고 나머지는 다 스파이가 아닌 것처럼,
Spy는 한 두 개만 우리가 원하는 값으로 대체해 주고, 나머지는 다 원래 객체의 것을 사용하고 싶을 때 사용한다.
만약 원래 객체를 테스트에서 사용하기 힘든 경우는 Mock을 사용해서 껍데기만 가져오고 내부는 우리가 원하는 대로 채워줘야 할 것이다.
https://github.com/mockito/mockito/wiki/Mockito-features-in-Korean
또한 지금은 학습하는 과정이라 SpyBean을 사용하고 있지만, Mockito 위키를 보면 Spy는 레거시 코드 처리 등을 할 때 가끔씩만 주의해서 사용해야 한다고 되어 있다.
Mockito관련 내용을 어디서 찾아봐야 할 지 궁금했는데, 앞으로는 Mockito 위키에서 찾아봐야 겠다.
'TIL' 카테고리의 다른 글
20221014 TIL sort와 친해진 하루 (0) 2022.10.14 20221013 TIL 순서를 보장해주는 Collection과 그렇지 않은 Collection (0) 2022.10.13 20221011 TIL 막힐 때는 단계를 나누어 차근차근 (0) 2022.10.11 20221010 TIL Stream api와 친해진 하루 (0) 2022.10.10 20221009 TIL 쓰고 싶은 프로그램을 만들자 (0) 2022.10.09