Matching Parameter Values
You can specify different actions to be performed when a method is invoked with different parameters:
allowing (calculator).add(1,1); will(returnValue(3)); allowing (calculator).add(2,2); will(returnValue(5)); allowing (calculator).sqrt(-1); will(throwException(new IllegalArgumentException());
You can specify that the same method can be invoked a different number of times with different parameters:
one (calculator).load("x"); will(returnValue(10)); never (calculator).load("y");
Actual parameters match if they are equal to the expected parameters.
For most values, equality is determined by the equals
method.
Null values are checked beforehand, so it is safe to pass
null
as an expected or actual parameter value. Arrays are
treated as a special case and compared recursively: two arrays are
considered equal if they are the same size and all their elements are
considered equal. If you want to ignore parameters or match parameter
values in a different way, you will need to define matchers1 for each parameter of the
expectation.