我有一个问题。我将以下函数与 Scala 猫库一起使用。
def process(
client: Resource[IO, HttpClient] = HttpClientFactory.createClient()
): IO[Long] =
client.use(httpClient => {
for {
files <- IO { getFiles() }
placeMarkers <- IO { sendFile(client) }
} yield placeMarkers
})
现在我想用单元测试来测试这段代码,我想模拟 httpClient。我正在尝试这样的事情,但它不起作用:
val resourceIOMock = mock[Resource[IO, HttpClient]]
val httpMock = mock[HttpClient]
doReturn(httpMock).when(resourceIOMock).use(any())
由于 Mathcers any(),这不起作用。我真的不知道如何在那里传递我的模拟,然后可以根据需要进行配置。从我看到的代码永远不会进入 for 循环。有人可以帮忙吗?谢谢