However, there must be a well-defined mapping
from abstract input actions to concrete input values. This mapping is an integral part
of the stepper.
Performing an action in the stepper may cause the stepper to return an output
action as a return value. This action either corresponds to the immediate return value
of a method or represents an abstraction of the resulting state of the IUT. There must
be a well-defined mapping from the concrete return values of the IUT to the abstract
actions returned by the stepper.
Steppers are implementations of the modeling library??™s IStepper interface.
public interface IStepper
{
Action DoAction(Action action);
void Reset();
}
Systems with Complex State 199
The DoAction method makes a step according to the given input action. It may
return either an output action or the special value null, which indicates that there is
no immediate output action. You should implement the DoAction method to throw an
exception if the input action fails. The Reset method should reset the implementation
to its initial state. If the stepper cannot reset the implementation from its current
state, it should throw an exception.
Since we are not interested in testing multiple instances of BagImpl, we assume
that the initial state of the stepper references a fixed instance of BagImpl that has
been created initially.
These are the action symbols that the stepper must handle:
??? An Add symbol that takes a string as an argument.
Pages:
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269