trait MockConsole extends Console
MockConsole provides a testable interface for programs interacting with
the console by modeling input and output as reading from and writing to
intput and output buffers maintained by MockConsole and backed by a Ref.
All calls to putStr and putStrLn using the MockConsole will write the
string to the output buffer and all calls to getStrLn will take a string
from the input buffer. No actual printing or reading from the console will
occur. MockConsole 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 getStrLn, output to get
the content of the output buffer from calls to putStr and putStrLn, 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.mock._ import zio.ZIO val sayHello = for { name <- getStrLn _ <- putStrLn("Hello, " + name + "!") } yield () for { _ <- MockConsole.feedLines("John", "Jane", "Sally") _ <- ZIO.collectAll(List.fill(3)(sayHello)) result <- MockConsole.output } yield result == Vector("Hello, John!\n", "Hello, Jane!\n", "Hello, Sally!\n")
- Alphabetic
- By Inheritance
- MockConsole
- Console
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
- abstract val console: Service[Any]
- Definition Classes
- MockConsole → Console
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[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- 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(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()