Packages

  • package root
    Definition Classes
    root
  • package org
    Definition Classes
    root
  • package scalatest

    ScalaTest's main traits, classes, and other members, including members supporting ScalaTest's DSL for the Scala interpreter.

    ScalaTest's main traits, classes, and other members, including members supporting ScalaTest's DSL for the Scala interpreter.

    Definition Classes
    org
  • trait FixtureTestSuite extends FixtureSuite with TestSuite

    The base trait for ScalaTest's synchronous testing styles that accept a fixture object passed into tests.

    The base trait for ScalaTest's synchronous testing styles that accept a fixture object passed into tests. This trait defines a withFixture lifecycle method that takes as its parameter a test function that accepts a fixture object and returns an Outcome.

    The abstract withFixture method add by this trait has the following signature:

    def withFixture(test: OneArgTest): Outcome
    

    The apply method of test function interface, OneArgTest, also returns Outcome:

    // In trait OneArgTest:
    def apply(fixture: FixtureParam): Outcome
    

    Because the result of a test is an Outcome, when the test function returns, the test body must have determined an outcome already. It will already be one of Succeeded, Failed, Canceled, or Pending. This is also true when withFixture(OneArgTest) returns: because the result type of withFixture(OneArgTest) is Outcome, the test has by definition already finished execution.

    The recommended way to ensure cleanup is performed after a test body finishes execution is to use a try-finally clause. Using try-finally will ensure that cleanup will occur whether the test function completes abruptly by throwing a suite-aborting exception, or returns normally yielding an Outcome. Note that the only situation in which a test function will complete abruptly with an exception is if the test body throws a suite-aborting exception. Any other exception will be caught and reported as either a Failed, Canceled, or Pending.

    To enable the stacking of traits that define withFixture(NoArgTest), it is a good idea to let withFixture(NoArgTest) invoke the test function instead of invoking the test function directly. To do so, you'll need to convert the OneArgTest to a NoArgTest. You can do that by passing the fixture object to the toNoArgTest method of OneArgTest. In other words, instead of writing “test(theFixture)”, you'd delegate responsibility for invoking the test function to the withFixture(NoArgTest) method of the same instance by writing:

    withFixture(test.toNoArgTest(theFixture))
    

    The withFixture method is designed to be stacked, and to enable this, you should always call the super implementation of withFixture, and let it invoke the test function rather than invoking the test function directly. In other words, instead of writing “test(...)”, you should write “super.withFixture(test)”. Thus, the recommended structure of a withFixture implementation that performs cleanup looks like this:

    // Your implementation
    type FixtureParam = String
    
    override def withFixture(test: OneArgTest) = { // Perform setup here val theFixture = "hello" try { withFixture(test.toNoArgTest(theFixture)) // Invoke the test function } finally { // Perform cleanup here } }

    If you have no cleanup to perform, you can write withFixture like this instead:

    // Your implementation
    type FixtureParam = String
    
    override def withFixture(test: NoArgTest) = { // Perform setup here val theFixture = "hello" withFixture(test.toNoArgTest(theFixture)) // Invoke the test function }

    If you want to perform an action only for certain outcomes, you can use a pattern match. For example, if you want to perform an action if a test fails, you'd match on Failed, like this:

    // Your implementation
    type FixtureParam = String
    
    override def withFixture(test: NoArgTest) = {
    // Perform setup here val theFixture = "hello"
    val outcome = withFixture(test.toNoArgTest(theFixture)) // Invoke the test function
    outcome match { case failed: Failed => // perform action that you want to occur // only if a test fails here failed case other => other } }

    If you want to change the outcome in some way in withFixture, you can also use a pattern match. For example, if a particular exception intermittently causes a test to fail, and can transform those failures into cancelations, like this:

    // Your implementation
    type FixtureParam = String
    
    override def withFixture(test: NoArgTest) = {
    val theFixture = "hello"
    withFixture(test.toNoArgTest(theFixture)) match { case Failed(ex: ParticularException) => Canceled("Muting flicker", ex) case other => other } }

    Definition Classes
    scalatest
  • CheckingEqualizer
  • Equalizer
  • FixtureParam
  • NoArgTest
  • OneArgTest

object OneArgTest

Companion object for OneArgTest that provides factory method to create new OneArgTest instance by passing in a OneArgTest and a FixtureParam => Outcome function.

Source
FixtureTestSuite.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. OneArgTest
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def apply(test: OneArgTest)(f: (FixtureTestSuite.FixtureParam) => Outcome): OneArgTest

    Create new OneArgTest instance.

    Create new OneArgTest instance.

    test

    a OneArgTest

    f

    a FixtureParam => Outcome function

    returns

    a new instance of OneArgTest, which will call the passed f function in its apply method

  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  10. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  17. def toString(): String
    Definition Classes
    AnyRef → Any
  18. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  19. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  20. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from AnyRef

Inherited from Any

Ungrouped