Мой код делает сетевые звонки. Иногда они терпят неудачу, и я реализовал retry logi c. Теперь я буду sh, чтобы проверить это с помощью модульного теста. Для этого я использую Mockito . У меня возникают проблемы с подделкой этого конкретного вызова метода, это мой тестовый код:
var mock = MockHttpClient();
var answers = <Future<String>>[
Future.error(Exception('boom')),
Future.value('some return value'),
];
when(mock.getStuff()).thenAnswer((_) => answers.removeAt(0));
var client = Client(inner: mock);
var result = client.someCall(); // This method call uses the `inner` object to make the `getStuff` network call.
expect(result, 'some return value');
Запуск этого кода вызывает исключение. И я получаю это из-за первого возвращенного Future
! У Mockito есть соответствующий вызов метода с именем thenThrow
, но я не могу понять, как их объединить.