Spring/테스트 코드 3

[Test] ArgumentCaptor 란?

배경 테스트 코드를 짜면서 Stubbing을 통해서 제가 원하는 대로 코드를 조작할 수 있었습니다. 또한 해당 메서드의 Stubbing이 잘 동작하는지 Mockito.verify, BDDMockito.then 을 이용하여 해당 메서드가 몇 번 호출이 되었고 어떤 인자를 갖고 호출이 되었는지 확인할 수 있었습니다. 점차 다양한 테스트 코드를 짜면서 해당 코드의 인자의 값이 로직에서 의도한 대로 세팅이 되었는지 확인을 필수로 해야하는 경우가 생겼습니다. 이 때 자주 사용했던 ArgumentCaptor 라는 클래스에 대해 알아보도록 하겠습니다. 이 글에서 사용한 코드는 해당 github에 저장되어 있습니다. 테스트 코드 GitHub - Rabongg/Test-Junit: Junit을 이용한 test 예제 Ju..

[Test] Mock, Spy

배경 테스트 코드를 작성할 때 Mock, Spy, Stubbing이라는 단어는 빼 놓을 수 없습니다. 테스트 코드를 처음 접했을 때 해당 용어들이 많이 헷갈렸습니다. 테스트 코드를 계속 작성을 해나가면서 어떤 상황에서는 Spy를 사용하고 어떤 상황에서는 Mock을 사용하고 이런 것들을 stubbing이라고 말하는 구나를 깨우칠 수 있었습니다. 이번에는 Test의 기본이 되는 Mock, Spy에 대해서 얘기해보려고 합니다. 해당 글에서 사용한 코드는 밑의 github에 있습니다. 테스트 소스 코드 GitHub - Rabongg/Test-Junit: Junit을 이용한 test 예제 Junit을 이용한 test 예제. Contribute to Rabongg/Test-Junit development by cr..

[Test] 테스트 코드를 왜 작성해야할까?

배경 회사에서 테스트 코드를 작성하면서 문득 테스트 코드를 왜 작성해야하는가에 대한 생각을 하게되었습니다. 많은 블로그에서 테스트 코드를 잘 작성하면 로직이 잘 동작하는지 빠르게 확인할 수 있고, 여러 예외 케이스들도 확인할 수 있다 등 여러 장점에 대해서 설명을 하고 있습니다. 오늘은 제가 테스트 코드를 작성하면서 개인적으로 테스트 코드를 작성하면 어떤 이점이 있는지 얘기해보려고 합니다. 제가 여기서 다루는 테스트 코드는 Unite Test 를 의미합니다. 해당 기능 빠르게 확인 테스트 코드를 통해서 기능을 쉽게 확인할 수 있습니다. 기능이라면 해당 로직에 어떤 값이 들어왔을 때 어떻게 동작하는지를 파악할 수 있다는 뜻입니다. java spring boot를 기준으로 보겠습니다. 보통 spring bo..