Scalatest - how to test println

Luigi Plinge picture Luigi Plinge · Aug 28, 2011 · Viewed 16.5k times · Source

Is there something in Scalatest that will allow me to test the output to the standard out via a println statement?

So far I've mainly been using FunSuite with ShouldMatchers.

e.g. how do we check the printed output of

object Hi {
  def hello() {
    println("hello world")
  }
}

Answer

Kevin Wright picture Kevin Wright · Aug 28, 2011

If you just want to redirect console output for a limited duration, use the withOut and withErr methods defined on Console:

val stream = new java.io.ByteArrayOutputStream()
Console.withOut(stream) {
  //all printlns in this block will be redirected
  println("Fly me to the moon, let me play among the stars")
}