org.scalatest

trait Informer

[source: org/scalatest/Informer.scala]

trait Informer
extends AnyRef
Trait to which custom information about a running suite of tests can be reported.

An Informer is essentially used to wrap a Reporter and provide easy ways to send custom information to that Reporter via an InfoProvided event. Informer contains an apply method that takes an object. The Informer will invoke toString on the passed object and forward the resulting string to the Reporter as the message parameter of an InfoProvided event.

Here's an example of using an Informer in a Suite subclass:

 import org.scalatest._
 
 class MySuite extends Suite {
   def testAddition(info: Informer) {
     assert(1 + 1 === 2)
     info("Addition seems to work")
   }
 }
 
If you run this Suite from the interpreter, you will see the message included in the printed report:
 scala> (new MySuite).execute()
 Test Starting - MySuite.testAddition(Reporter)
 Info Provided - MySuite.testAddition(Reporter): Addition seems to work
 Test Succeeded - MySuite.testAddition(Reporter)
 

Traits FunSuite, Spec, FlatSpec, WordSpec, FeatureSpec, and their sister traits in org.scalatest.fixture package declare an implicit info method that returns an Informer. This implicit info is used, for example, to enable the syntax offered by the GivenWhenThen trait, which contains methods that take an implicit Informer. Here's an example of a FeatureSpec that mixes in GivenWhenThen:

 import org.scalatest.FeatureSpec
 import org.scalatest.GivenWhenThen
 
 class ArithmeticSpec extends FeatureSpec with GivenWhenThen {
 
   feature("Integer arithmetic") {

     scenario("addition") {
 
       given("two integers")
       val x = 2
       val y = 3
 
       when("they are added")
       val sum = x + y
 
       then("the result is the sum of the two numbers")
       assert(sum === 5)
     }

     scenario("subtraction") {
 
       given("two integers")
       val x = 7
       val y = 2
 
       when("one is subtracted from the other")
       val diff = x - y
 
       then("the result is the difference of the two numbers")
       assert(diff === 5)
     }
   }
 }
 

Were you to run this FeatureSpec in the interpreter, you would see the following messages included in the printed report:

 scala> (new ArithmeticFeatureSpec).run()
 Feature: Integer arithmetic 
   Scenario: addition
     Given two integers 
     When they are added 
     Then the result is the sum of the two numbers 
   Scenario: subtraction
     Given two integers 
     When one is subtracted from the other 
     Then the result is the difference of the two numbers 
 
Author
Bill Venners
Method Summary
abstract def apply (message : java.lang.String) : Unit
Provide information to the Reporter as the .
Methods inherited from AnyRef
getClass, hashCode, equals, clone, toString, notify, notifyAll, wait, wait, wait, finalize, ==, !=, eq, ne, synchronized
Methods inherited from Any
==, !=, isInstanceOf, asInstanceOf
Method Details
abstract def apply(message : java.lang.String) : Unit
Provide information to the Reporter as the .
Parameters
message - an object whose toString result will be forwarded to the wrapped Reporter via an InfoProvided event.
Throws
NullPointerException - if message reference is null


Copyright (C) 2001-2010 Artima, Inc. All rights reserved.