trait TestConsole extends Console with Restorable
TestConsole
provides a testable interface for programs interacting with the
console by modeling input and output as reading from and writing to input and
output buffers maintained by TestConsole
and backed by a Ref
.
All calls to print
and printLine
using the TestConsole
will write the
string to the output buffer and all calls to readLine
will take a string
from the input buffer. To facilitate debugging, by default output will also
be rendered to standard output. You can enable or disable this for a scope
using debug
, silent
, or the corresponding test aspects.
TestConsole
has several methods to access and manipulate the content of
these buffers including feedLines
to feed strings to the input buffer that
will then be returned by calls to readLine
, output
to get the content of
the output buffer from calls to print
and printLine
, and clearInput
and
clearOutput
to clear the respective buffers.
Together, these functions make it easy to test programs interacting with the console.
import zio.Console._ import zio.test.TestConsole import zio.ZIO val sayHello = for { name <- readLine _ <- printLine("Hello, " + name + "!") } yield () for { _ <- TestConsole.feedLines("John", "Jane", "Sally") _ <- ZIO.collectAll(List.fill(3)(sayHello)) result <- TestConsole.output } yield result == Vector("Hello, John!\n", "Hello, Jane!\n", "Hello, Sally!\n")
- Alphabetic
- By Inheritance
- TestConsole
- Restorable
- Console
- Serializable
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
- abstract def clearInput(implicit trace: ZTraceElement): UIO[Unit]
- abstract def clearOutput(implicit trace: ZTraceElement): UIO[Unit]
- abstract def debug[R, E, A](zio: ZIO[R, E, A])(implicit trace: ZTraceElement): ZIO[R, E, A]
- abstract def feedLines(lines: String*)(implicit trace: ZTraceElement): UIO[Unit]
- abstract def output(implicit trace: ZTraceElement): UIO[Vector[String]]
- abstract def outputErr(implicit trace: ZTraceElement): UIO[Vector[String]]
-
abstract
def
print(line: ⇒ Any)(implicit trace: ZTraceElement): IO[IOException, Unit]
- Definition Classes
- Console
-
abstract
def
printError(line: ⇒ Any)(implicit trace: ZTraceElement): IO[IOException, Unit]
- Definition Classes
- Console
-
abstract
def
printLine(line: ⇒ Any)(implicit trace: ZTraceElement): IO[IOException, Unit]
- Definition Classes
- Console
-
abstract
def
printLineError(line: ⇒ Any)(implicit trace: ZTraceElement): IO[IOException, Unit]
- Definition Classes
- Console
-
abstract
def
readLine(implicit trace: ZTraceElement): IO[IOException, String]
- Definition Classes
- Console
-
abstract
def
save(implicit trace: ZTraceElement): UIO[UIO[Unit]]
- Definition Classes
- Restorable
- abstract def silent[R, E, A](zio: ZIO[R, E, A])(implicit trace: ZTraceElement): ZIO[R, E, A]
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
Deprecated Value Members
-
def
getStrLn(implicit trace: ZTraceElement): IO[IOException, String]
- Definition Classes
- Console
- Annotations
- @deprecated
- Deprecated
(Since version 2.0.0) use
readLine
-
def
putStr(line: ⇒ String)(implicit trace: ZTraceElement): IO[IOException, Unit]
- Definition Classes
- Console
- Annotations
- @deprecated
- Deprecated
(Since version 2.0.0) use
print
-
def
putStrErr(line: ⇒ String)(implicit trace: ZTraceElement): IO[IOException, Unit]
- Definition Classes
- Console
- Annotations
- @deprecated
- Deprecated
(Since version 2.0.0) use
printError
-
def
putStrLn(line: ⇒ String)(implicit trace: ZTraceElement): IO[IOException, Unit]
- Definition Classes
- Console
- Annotations
- @deprecated
- Deprecated
(Since version 2.0.0) use
printLine
-
def
putStrLnErr(line: ⇒ String)(implicit trace: ZTraceElement): IO[IOException, Unit]
- Definition Classes
- Console
- Annotations
- @deprecated
- Deprecated
(Since version 2.0.0) use
printLineError