【发布时间】:2020-01-30 13:47:50
【问题描述】:
我的代码进行网络调用。有时这些失败,我已经实现了一些retry 逻辑。现在我想用单元测试来测试它。我为此使用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 的适当方法调用,但我不知道如何将两者结合起来。
【问题讨论】:
标签: unit-testing dart mocking mockito