Я пытался следовать официальному do c в модульном тесте. Вот мой код
class Api {
Api(this.url, this.client);
String url;
http.Client client;
Future<GetConfigResponse> getAppConfig (String a, String b) async {
try {
var response = await client.get('url', headers:header);
return GetConfigResponse.fromJson(json.decode(response.body));
} catch (e) {
print e;
return null;
}
}
И это мой класс модульного теста
class MockClient extends Mock implements http.Client {}
main() {
test('test', () async {
final client = MockClient();
final resp = {fake response};
when(client.get('www...')).thenAnswer((_) async {
return http.Response('{fake response}',200);
});
final api = Api('www...', client);
final expectedResponse = GetAppConfig.fromJson(resp);
expect(await api.getAppConfig('a','b'), expectedResponse);
}
Но фактический от expect (который слева) всегда возвращает null . Я также попытался сделать то же самое с официальным do c, который вводит клиент в качестве параметра функции, но тот же получает значение null. Может ли кто-нибудь указать мне правильный путь, какая часть этого неверна?