scala import zio.{ZIO, UIO} object Database { def fetchData: UIO[String] = ZIO.succeed("Hello, ZIO!") } object MyApp { def processData: ZIO[Database, Throwable, String] = Database.fetchData.map(_.toUpperCase) } object MyAppTest extends zio.test.DefaultRunnableSpec { def spec = suite("MyAppSpec")( testM("processData returns correct result") { for { result <- MyApp.processData.provide(Database) } yield assert(result)(equalTo("HELLO, ZIO!")) } ) } scala import zio.test.{run, DefaultRunnableSpec} object Main extends App { val testExecution = run(new MyAppTest) zio.Runtime.default.unsafeRun(testExecution) } scala libraryDependencies += "dev.zio" %% "zio-test" % "1.0.0" % "test", libraryDependencies += "dev.zio" %% "zio-test-sbt" % "1.0.0" % "test"


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