Модульный тест Flutter на http всегда равен null в expect () - PullRequest
0 голосов
/ 08 мая 2020

Я пытался следовать официальному 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. Может ли кто-нибудь указать мне правильный путь, какая часть этого неверна?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...