whenResult<T, E extends Object> function
PostExpectation<Result<T, E> >
whenResult<T, E extends Object>(
- Result<
T, E> invocation(), { - Result? dummy,
A wrapper for Mockito's when that simplifies stubbing methods returning Result.
Since Mockito requires a dummy value for non-nullable return types during stubbing, this utility allows providing a
dummy value which is then registered via provideDummy for Result<T, E>.
Example:
whenResult(() => mock.getUser(), dummy: Ok(dummyUser)).thenReturn(Ok(actualUser));
Implementation
PostExpectation<Result<T, E>> whenResult<T, E extends Object>(
Result<T, E> Function() invocation, {
Result<dynamic, dynamic>? dummy,
}) {
if (dummy != null) {
provideDummy<Result<T, E>>(_castDummy<T, E>(dummy, 'whenResult'));
}
try {
return when(invocation());
} on MissingDummyValueError catch (e) {
throw Exception(
'whenResult: MissingDummyValueError occurred while stubbing a Result-returning method.\n'
'This usually happens because the Result type needs a dummy value registered with Mockito.\n\n'
'To fix this, provide a dummy value to whenResult:\n'
" whenResult(() => mock.method(), dummy: Ok('dummy_value'))\n\n"
'Original error: $e',
);
}
}