Как протестировать с помощью PowerMockito метод в презентаторе со значениями, заданными в конструкторе

#android #unit-testing #powermock #powermockito

Вопрос:

Я пытаюсь протестировать с помощью PowerMockito2 метод, который у меня есть в моем презентаторе. Это имеет значение, которое я передаю в конструкторе презентатора, и всегда равно нулю.

Как я могу этого достичь?

Тест

     @Test
        fun `check addCoupon method should do execute add getCoupon Api method`() {
          val givenBody = myBody("xxxxx")
            val mockedClass = PowerMockito.mock(myPresenter::class.java)
            val mockedApi = PowerMockito.mock(Api::class.java)
    
            Mockito.`when`(mockedClass.apiCall).thenReturn(mockedApi)
    
            mockedClass.addCoupon(givenBody.couponCode)
            verify(mockedClass).addCoupon(givenBody.couponCode)
            verify(mockedClass.apiCall).getCoupon(givenBody, "7492", 1)
    }
 

Ведущий

     class myPresenter(var activity: Activity?){
    
        lateinit var apiCall: Api
    
    fun addCoupon(text: String) {
            val okHttpClient = HttpClientHelper.createClient(activity)
            apiCall = Api(myUrl, client = okHttpClient)
            apiCall.getCoupon(text).enqueue(addCouponCallback) // Here is the line that I want verify in test
        }
    }
 

Комментарии:

1. Избегайте PowerMock любой ценой.