Raman Sharma
11/27/2023, 12:47 PM@Test
fun `getScreenData returns Success with screen data`() = runBlocking {
val mockScreenId = "test_screen_id"
val mockScreenData = ScreenJson("test_id", "test_data", "test_type", "test_url")
val mockHttpClient = mockk<HttpClient>()
every { networkKtorModule.client } returns mockHttpClient
coEvery {
mockHttpClient.get<ScreenJson>("${networkKtorModule.networkConfig.baseUrl}/screens/$mockScreenId")
} answers {
val mockResponse = mockk<HttpResponse>()
every { mockResponse.status } returns HttpStatusCode.OK
every { mockResponse.receive<String>() } returns mockScreenData
mockResponse
}
val result = apiService.getScreenData(mockScreenId)
}
When trying to mock api call, I am getting Type mismatch.:
coEvery {
mockHttpClient.get<ScreenJson>("${networkKtorModule.networkConfig.baseUrl}/screens/$mockScreenId")
}
Required:
MockKMatcherScope.DynamicCall
Found:
HttpResponse
Any help will be appreciated.Aleksei Tirman [JB]
11/27/2023, 12:51 PMHttpClient.get
is an inline method. To mock the response you can use the MockEngine.Raman Sharma
11/27/2023, 1:00 PM