trait TestConsole extends 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.environment.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
- Serializable
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
- abstract def clearInput: UIO[Unit]
- abstract def clearOutput: UIO[Unit]
- abstract def debug[R, E, A](zio: ZIO[R, E, A]): ZIO[R, E, A]
- abstract def feedLines(lines: String*): UIO[Unit]
- abstract def output: UIO[Vector[String]]
- abstract def outputErr: UIO[Vector[String]]
-
abstract
val
save: UIO[UIO[Unit]]
- Definition Classes
- Restorable
- abstract def silent[R, E, A](zio: ZIO[R, E, A]): 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()