【发布时间】:2021-10-23 11:30:57
【问题描述】:
我使用mocktail 进行单元测试,但在第一次调用时找不到抛出异常的方法,但后来在第二次调用,接听正确的输出。
我可以找到this solution 以获得两个不同的答案,但这不足以测试抛出的异常。所以我需要想出一个修改后的解决方案。
这就是我想要实现的。顺便说一句,我正在使用 http get 测试连接重试。
import 'package:http/http.dart' as http;
import 'package:mocktail/mocktail.dart';
class MockClient extends Mock implements http.Client {}
final mockClient = MockClient();
//First time fails, second one retrieves a result. This doesn't work on Mocktail
when(() => mockClient.get(Uri.parse(url)))
.thenThrow(SocketException()) // Call 1
.thenAnswer((_) => Future.value(http.Response("page content", 200)) // Call 2
);
【问题讨论】:
标签: flutter unit-testing dart mockito