Я использую Mockito для написания тестов на Flutter. У меня есть ложный класс и метод с аргументами, которые являются функциями - Function (), и этот метод возвращает StreamSubscription
. Мне нужно передать эти аргументы на вызов функции listen()
, но я не могу найти способ сделать это. (См. Пример) Может ли кто-нибудь помочь мне, пожалуйста?
Я пытался передать их с argThat(anyNamed('nameOfArgument')
, как в примере, но проверяет ошибку trows - сопоставление аргументов "anyNamed" используется вне заглушки метода (черезwhen
)
class MockPhotoLibraryService extends Mock implements PhotoLibraryService {}
PhotoLibraryService setupMockPhotoLibraryService() {
final photoLibraryService = MockPhotoLibraryService();
when(
photoLibraryService.getPhotosForPeriod(
onData: anyNamed('onData'),
onDone: anyNamed('onDone'),
onError: anyNamed('onError')),
).thenAnswer((_) => Stream<Photo>.fromFuture(
Future<Photo>.delayed(Duration(milliseconds: 50), () => Photo()))
.listen(argThat(anyNamed('onData')), //need to pass argument named onData
onDone: argThat(anyNamed('onDone')), //need to pass argument named onDone
onError: argThat(anyNamed('onError')), //need to pass argument named onError
cancelOnError: true));
return photoLibraryService;
}
Мне нужно, чтобы Future вызывал функции этих аргументов для корректной работы моего тестируемого виджета.