티스토리 뷰

들어가며

  • Kotlin 테스트를 작성하다 보면 singleton object 에 대한 Mocking이 필요한 경우가 있습니다.
  • Kotlin Mock 라이브러리 Mockk 를 사용하여 object Mocking 방법에 대해서 알아보겠습니다.

해결방법

  • Mockk 의 object Mocking 방법은 간단합니다. 
  • mockkObject() 함수를 이용하여 대상 object (인스턴스)를 넣어준 뒤 일반 function mocking 방법 처럼 mocking을 적용하면 됩니다. 
  • 테스트 후 mocking 해제를 원한다면unmockkObject() 를 이용할 수 있습니다. 
@Test
fun `object mocking 테스트`() {
    mockkObject(AmountEstimator)

    every { AmountEstimator.estimate(any()) } returns mockk<AmountEstimateResult>()
    
    println(AmountEstimator.estimate("ssss"))
}

@AfterEach
fun afterEach() {
    unmockkObject(PayDueDateEstimator)
}

 

  • 자세한 Document 내용은 아래 위치에서 확인할 수 있습니다.
 

Mock singleton objects and static methods

Mock singleton objects and static methods # Mocking objects # When you need a singleton in Kotlin, you can use an object. These specialized classes will only ever have one instance, so you can’t mock them in the usual manner. Instead, MockK provides spec

notwoods.github.io


관련글

 

[Kotlin] Mockk 사용 시 확장 함수 Mocking 하는 방법

들어가며 Test Case를 작성하다 보면 테스트 하고자 하는 로직에 대해서 검증 로직과는 상관 없는 Extension Function 에 대해서 Mocking 을 해야 할 때가 있습니다. 저의 경우에는 확장 함수를 주로 아래

jinseongsoft.tistory.com

 

[kotlin] MockK 사용시 Multiple Method Call Verification 방법

들어가며 테스트 코드를 작성하는 중 mock class에 대하여 verify를 사용할 일이 있었는데 한 메서드에 대해서 여러번 호출을 하고 검증시에 각각의 호출에 대한 Parameter 를 검증하고자 했다. 아래와

jinseongsoft.tistory.com

 

 

반응형
댓글