현재 회사에서는 gomock을 사용해서 mock 파일을 생성하고 테스트에 사용한다. 그러던 중 mockery를 사용해서 테스트 작업을 개선해보자는 의견이 나와서 mockery에서 제공하는 문서를 읽고 간략히 정리하며 실습해봤다.
왜 gomock 대신 mockery를 쓰나요?¶
mockery는 훨씬 더 사용자 친화적인 API를 제공하며 사용하기가 덜 혼란스럽습니다.
mockery는 견고하고 기능이 풍부한 테스트 프레임워크를 활용합니다.
mockery에는 모의가 생성되는 방식을 세부적으로 제어할 수 있는 풍부한 구성 옵션이 있습니다.
mockery의 CLI는 더욱 강력하고 사용자 친화적이며 더 많은 옵션을 제공합니다.
mockery는 제네릭을 지원합니다
라고 mockery 문서에는 명시되어 있다.
https://vektra.github.io/mockery/latest/examples/
https://vektra.github.io/mockery/latest/configuration/
옵션을 보고 있는데... 이건 실제 사용하면서 실용적인 옵션이 생기면 그때 정리하려고 한다.
example 실습하면서 사용한 yaml 옵션은 이렇다.
quiet: False # mockery 실행 시 출력되는 정보(로그, 진행 상황)를 억제하지 않고, 출력하도록 설정
disable-version-string: True # mockery로 생성된 모킹 파일 상단에 버전 정보를 포함하지 않도록 설정
with-expecter: True # EXPECT() 메서드를 생성하여, 모킹된 객체에 대해 기대 동작을 설정할 수 있게 함
outpkg: mocks # 생성된 모킹 코드가 들어갈 패키지 이름을 mocks로 설정