org.scalatest.concurrent.AbstractPatienceConfiguration.scala Maven / Gradle / Ivy
Show all versions of scalatest_2.11.0-M3 Show documentation
package org.scalatest.concurrent
import org.scalatest.time.{Span, Millis}
/**
* Trait that defines an abstract patienceConfig
method that is implemented in PatienceConfiguration
and can
* be overriden in stackable modification traits such as IntegrationPatience
.
*
*
* The main purpose of AbstractPatienceConfiguration
is to differentiate core PatienceConfiguration
* traits, such as Eventually
and AsyncAssertions
, from stackable
* modification traits for PatienceConfiguration
s such as IntegrationPatience
.
* Because these stackable traits extend AbstractPatienceConfiguration
* instead of Suite
, you can't simply mix in a stackable trait:
*
*
*
* class ExampleSpec extends FunSpec with IntegrationPatience // Won't compile
*
*
*
* The previous code is undesirable because IntegrationPatience
would have no affect on the class. Instead, you need to mix
* in a core PatienceConfiguration
trait and mix the stackable IntegrationPatience
trait
* into that, like this:
*
*
*
* class ExampleSpec extends FunSpec with Eventually with IntegrationPatience // Compiles fine
*
*
*
* The previous code is better because IntegrationPatience
does have an effect: it modifies the behavior
* of Eventually
.
*
*
* @author Bill Venners
*/
trait AbstractPatienceConfiguration extends ScaledTimeSpans {
/**
* Configuration object for asynchronous constructs, such as those provided by traits Eventually
and
* AsyncAssertions
.
*
*
* The default values for the parameters are:
*
*
*
* Configuration Parameter Default Value
*
*
* timeout
*
*
* scaled(150 milliseconds)
*
*
*
*
* interval
*
*
* scaled(15 milliseconds)
*
*
*
*
* @param timeout the maximum amount of time to wait for an asynchronous operation to complete before giving up and throwing
* TestFailedException
.
* @param interval the amount of time to sleep between each check of the status of an asynchronous operation when polling
*
* @author Bill Venners
* @author Chua Chee Seng
*/
final case class PatienceConfig(timeout: Span = scaled(Span(150, Millis)), interval: Span = scaled(Span(15, Millis)))
/**
* Returns a PatienceConfig
value providing default configuration values if implemented and made implicit in subtraits.
*/
def patienceConfig: PatienceConfig
}