Unit test를 위한 Mock class 를 만들때 질문입니다

안녕하세요 unit test를 위해 mock class를 만드는 도중 어려움이 있어 질문올립니다.

Mock class의 함수가 호출되었는지 유무를 판단하기 위해 subclassing으로 Mock class를 만들었습니다.

그리고 override를 통해 isFunctionACalled = true 로 호출 여부를 판단했는데요, 문제는 extension에 작성된 함수들입니다.

extension같은 경우는 런타임에 구현체로 인식하지 않아서 override가 불가능한 걸로 알고있습니다.

@objc키워드를 통해 해결할 수 있지만 근본적인 해결책이 아닌것 같고, 해당 class를 감싸는 프로토콜을 새로 만들어 subclassing 대신 프로토콜을 준수하는 Mock class도 방법이였지만, 기존 코드의 타입을 수정해야 하는 문제가 있어서 포기했습니다.

요약하자면 Unit test 할 때 Mocking할 class 의 extension에 있는 메서드는 어떻게 호출 여부를 테스트 할 수 있을까요??

좋아요 1

관련된 코드도 함께 올려주실 수 있나요?

좋아요 1