#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 любой ценой.