목록Test (2)
쟈미로그
서론 Mockito는 static 메소드를 목킹할 수 없다 (+final, private ..) Kotlin+Spring 환경에서 개발하면서 알게된 것 중 하나가 'Mockito로는 static 메소드를 목킹할 수 없다'는 것이다. 이 사실을 깨달은 경위는, 코틀린에서 확장 함수를 목킹하고 싶은 상황이 와서 목킹하려하자 에러가 뜨는 것이었다. (코틀린 확장함수는 자바로 디컴파일 시 static final 혹은 final 메소드로 변환된다.) 이 목킹하려는 확장 함수가 내가 짠 코드면 모르겠는데.. Spring Data JPA가 기존 Optional을 반환하는 findById 대신, 코틀린을 위해 제공하는 확장 함수인 findByIdOrNull을 목킹하려다 일어난 일이었다. (아래와 같이 findByIdO..
요즘 인생 처음으로 코틀린을 사용한 서버 개발을 하고 있다. 테스트 코드의 필요성을 느끼던 찰나, 한 팀원분이 Kotest vs JUnit 중 어떤 프레임워크를 사용할지 정하자고 하셨다. 자바 스프링부트로 개발할 때는 JUnit+Mockito로 단위 테스트를 짰었고, 그래서 큰 생각 없이 이 조합으로 테스트코드를 짜려했는데 오산이었다. (사실 Kotest라는 테스트 프레임워크가 있는 줄도 몰랐다 히히) 그래서 생각해보니 자바와 유사한 코틀린이지만 사용해볼 수록 자바 스타일 != 코틀린 스타일이긴 했다. 테스트 프레임워크도 코틀린에 어울리는 게 있다면 JUnit보단 그걸 사용하는게 맞다는 생각이 들었고, 찾아보니 Kotest가 마침 '코틀린에 어울리는 테스트 프레임워크'였다. 그래서 지금부터 Kotest ..