when top-level property
When<T> Function<T>(T x())
get
when
Create a stub method response.
Call a method on a mock object within the call to when
, and call a
canned response method on the result. For example:
when(() => cat.eatFood("fish")).thenReturn(true);
Mocktail will store the fake call to cat.eatFood
, and pair the exact
arguments given with the response. When cat.eatFood
is called outside a
when
or verify
context (a call "for real"), Mocktail will respond with
the stored canned response, if it can match the mock method parameters.
The response generators include thenReturn
, thenAnswer
, and thenThrow
.
See the README for more information.
Implementation
When<T> Function<T>(T Function() x) get when {
if (_whenCall != null) {
throw StateError('Cannot call `when` within a stub response');
}
_whenInProgress = true;
return <T>(T Function() fn) {
try {
fn();
} catch (e) {
if (e is! TypeError) rethrow;
}
_whenInProgress = false;
return When<T>();
};
}