import zio.clock.Clock import zio.console.Console import zio.test.mock.mockable @mockable[Console] trait MyApi { def getData(id: Int): Task[String] def saveData(data: String): Task[Unit] } def myFunction(id: Int, api: MyApi): Task[String] = { for { data <- api.getData(id) _ <- api.saveData(data) } yield data } object MyService extends MyApi { def getData(id: Int): Task[String] = Task.succeed(s"Data for id $id") def saveData(data: String): Task[Unit] = Task.unit } val testLayer = (Console.none ++ Clock.live) >>> MyApiMock.any val testRuntime = Runtime.default val result = testRuntime.unsafeRun(myFunction(123, MyService).provideLayer(testLayer)) assert(result == "Data for id 123")


上一篇:
下一篇:
切换中文