PatienceConfiguration

Trait providing methods and classes used to configure timeouts and, where relevant, the interval between retries.

This trait is called PatienceConfiguration because it allows configuration of two values related to patience: The timeout specifies how much time asynchronous operations will be given to succeed before giving up. The interval specifies how much time to wait between checks to determine success when polling.

The default values for timeout and interval provided by trait PatienceConfiguration are tuned for unit testing, where running tests as fast as possible is a high priority and subsystems requiring asynchronous operations are therefore often replaced by mocks. This table shows the default values:

Configuration ParameterDefault Value
timeout scaled(150 milliseconds)
interval scaled(15 milliseconds)

Values more appropriate to integration testing, where asynchronous operations tend to take longer because the tests are run against the actual subsytems (not mocks), can be obtained by mixing in trait IntegrationPatience.

The default values of both timeout and interval are passed to the scaled method, inherited from ScaledTimeSpans, so that the defaults can be scaled up or down together with other scaled time spans. See the documentation for trait ScaledTimeSpans for more information.

Timeouts are used by the eventually methods of trait Eventually and the await method of class Waiter, a member of trait Waiters. Intervals are used by the eventually methods.

Companion:
object
class Object
trait Matchable
class Any
object Eventually.type
trait Futures
object Futures.type
object ScalaFutures.type
trait Waiters
object Waiters.type

Type members

Inherited classlikes

final case class PatienceConfig(timeout: Span, interval: Span)

Configuration object for asynchronous constructs, such as those provided by traits Eventually and Waiters.

Configuration object for asynchronous constructs, such as those provided by traits Eventually and Waiters.

The default values for the parameters are:

Configuration ParameterDefault Value
timeout scaled(150 milliseconds)
interval scaled(15 milliseconds)
Value parameters:
interval

the amount of time to sleep between each check of the status of an asynchronous operation when polling

timeout

the maximum amount of time to wait for an asynchronous operation to complete before giving up and throwing TestFailedException.

Inherited from:
AbstractPatienceConfiguration

Value members

Concrete methods

def interval(value: Span): Interval

Returns an Interval configuration parameter containing the passed value, which specifies the amount of time to sleep after a retry.

Returns an Interval configuration parameter containing the passed value, which specifies the amount of time to sleep after a retry.

def timeout(value: Span): Timeout

Returns a Timeout configuration parameter containing the passed value, which specifies the maximum amount to wait for an asynchronous operation to complete.

Returns a Timeout configuration parameter containing the passed value, which specifies the maximum amount to wait for an asynchronous operation to complete.

Inherited methods

final def scaled(span: Span): Span

Scales the passed Span by the Double factor returned by spanScaleFactor.

Scales the passed Span by the Double factor returned by spanScaleFactor.

The Span is scaled by invoking its scaledBy method, thus this method has the same behavior: The value returned by spanScaleFactor can be any positive number or zero, including a fractional number. A number greater than one will scale the Span up to a larger value. A fractional number will scale it down to a smaller value. A factor of 1.0 will cause the exact same Span to be returned. A factor of zero will cause Span.ZeroLength to be returned. If overflow occurs, Span.Max will be returned. If underflow occurs, Span.ZeroLength will be returned.

Throws:
IllegalArgumentException

if the value returned from spanScaleFactor is less than zero

Inherited from:
ScaledTimeSpans
def spanScaleFactor: Double

The factor by which the scaled method will scale Spans.

The factor by which the scaled method will scale Spans.

The default implementation of this method will return the span scale factor that was specified for the run, or 1.0 if no factor was specified. For example, you can specify a span scale factor when invoking ScalaTest via the command line by passing a -F argument to Runner.

Inherited from:
ScaledTimeSpans

Implicits

Implicits

Implicit PatienceConfig value providing default configuration values.

Implicit PatienceConfig value providing default configuration values.

To change the default configuration, override or hide this def with another implicit PatienceConfig containing your desired default configuration values.