Я делаю http запросы в котлине с библиотекой топлива.Я хочу проверить этот код, используя библиотеку mockk.Я понял, как издеваться над http-запросами.Ниже приведен код для этого.
val client = mockk<Client>()
every { client.executeRequest(any()).statusCode } returns 200
every { client.executeRequest(any()).responseMessage } returns "test"
every { client.executeRequest(any()).data } returns "abc".toByteArray()
FuelManager.instance.client = client
assertEquals("abc" , testHttpRequest())
Мне это не нравится any()
здесь.Я хочу быть конкретным о методе http и URL.Я хотел бы вернуть конкретные ответы на основе вызываемого URL-адреса и используемого метода http.
Я подумал, что мог бы сделать следующее
val req = Request(Method.POST, "my/test", URL("https://testRequest.com"), timeoutInMillisecond = 3000, timeoutReadInMillisecond = 3000)
every { client.executeRequest(req).statusCode } returns 200
every { client.executeRequest(req).responseMessage } returns "OK"
every { client.executeRequest(req).data } returns "abc".toByteArray()
FuelManager.instance.client = client
Но я получаю следующую ошибку.
io.mockk.MockKException: no answer found for: Client(#1).executeRequest(-->
https://testRequest.com/my/test
"Body : abc"
"Headers : (3)"
Accept-Encoding : compress;q=0.5, gzip;q=1.0
Content-Type : application/json
Authorization : Basic xxx)
Что мне здесь не хватает?