Rehearses program without a runtime, step by step, and returns what scenario returns. As in drive, the
test acts through what the models show; unlike it, nothing runs by itself: each command waits until the test
runs it, through the program's runCommand with the services provided, and each subscription message is one
the test says was heard. So the test decides what happens while a command is under way, and when its answer
arrives. Since the test decides when each message arrives, a message it sends from the current model is applied
to the state that model shows, and a rejection is a control that does nothing: it fails the test, as an error
update throws does, being a defect of the program. A command's or a subscription's message may no longer
apply when it arrives: as when the program runs, it is ignored, and listed in ignored. A command still pending
when scenario ends fails the test: its answer would still arrive.
Rehearses
programwithout a runtime, step by step, and returns whatscenarioreturns. As indrive, the test acts through what the models show; unlike it, nothing runs by itself: each command waits until the test runs it, through the program'srunCommandwith the services provided, and each subscription message is one the test says was heard. So the test decides what happens while a command is under way, and when its answer arrives. Since the test decides when each message arrives, a message it sends from the current model is applied to the state that model shows, and a rejection is a control that does nothing: it fails the test, as an errorupdatethrows does, being a defect of the program. A command's or a subscription's message may no longer apply when it arrives: as when the program runs, it is ignored, and listed inignored. A command still pending whenscenarioends fails the test: its answer would still arrive.