Command

trait Command

A type representing the commands that can run in the system under test. This type should be immutable and implement the equality operator properly.

A type representing the commands that can run in the system under test. This type should be immutable and implement the equality operator properly.

class Object
trait Matchable
class Any

Type members

Types

type Result

An abstract representation of the result of running this command in the system under test. The Result type should be immutable and it should encode everything about the command run that is necessary to know in order to correctly implement the [postCondition] method.

An abstract representation of the result of running this command in the system under test. The Result type should be immutable and it should encode everything about the command run that is necessary to know in order to correctly implement the [postCondition] method.

Value members

Abstract methods

def nextState(state: State): State

Returns a new State instance that represents the state of the system after this command has run, given the system was in the provided state before the run.

Returns a new State instance that represents the state of the system after this command has run, given the system was in the provided state before the run.

def postCondition(state: State, result: Try[Result]): Prop

Postcondition that decides if this command produced the correct result or not, given the system was in the provided state before the command ran.

Postcondition that decides if this command produced the correct result or not, given the system was in the provided state before the command ran.

def preCondition(state: State): Boolean

Precondition that decides if this command is allowed to run when the system under test is in the provided state.

Precondition that decides if this command is allowed to run when the system under test is in the provided state.

def run(sut: Sut): Result

Executes the command in the system under test, and returns a representation of the result of the command run. The result value is later used for verifying that the command behaved according to the specification, by the postCondition method.

Executes the command in the system under test, and returns a representation of the result of the command run. The result value is later used for verifying that the command behaved according to the specification, by the postCondition method.