val input = "Hello, World!" val mockConsole = MockConsole.empty.feedLines(input) val program = for { _ <- console.putStrLn("Please enter a message:") message <- console.getStrLn _ <- console.putStrLn(s"You entered: $message") } yield () val result = program.provideLayer(ZEnv.live ++ (mockConsole >>> Console.live)) assert(result, succeeds) assert(mockConsole.output, equalTo(Vector("Please enter a message: ", s"You entered: $input "))) val testClock = TestClock() val program = for { _ <- console.putStrLn("Start") _ <- clock.sleep(1.second) _ <- console.putStrLn("End") } yield () val result = program.provideLayer(ZEnv.live ++ (testClock >>> Clock.live)) assert(result, succeeds) assert(testClock.adjust(Duration(1, TimeUnit.SECONDS)).currentTimeMillis(), equalTo(1000L)) assert(testClock.adjust(Duration(2, TimeUnit.SECONDS)).currentTimeMillis(), equalTo(2000L)) val mockFilesystem = MockFilesystem.empty val program = for { _ <- filesystem.writeFile("/path/to/file.txt", "Hello, World!") contents <- filesystem.readFile("/path/to/file.txt") } yield contents val result = program.provideLayer(mockFilesystem) assert(result, equalTo("Hello, World!")) // build.sbt libraryDependencies += "dev.zio" %% "zio-test" % "<version>" libraryDependencies += "dev.zio" %% "zio-test-magnolia" % "<version>" libraryDependencies += "dev.zio" %% "zio-mock" % "<version>" scala import zio._ import zio.test.mock._


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