Как мы можем выполнить модульное тестирование асинхронных функций с помощью пакета test в angulardart? - PullRequest
0 голосов
/ 06 июня 2018

Я попытался создать асинхронную функцию, используя код angulardart, который будет вызывать внутренний сервис и из сервиса будет возвращать ответ из тестового URL.Как я буду издеваться над конкретной функцией getUserDetails ().

login_component.html

<div class="container">
   <button type="button" (click)="getUserDetails()">Click me to see 
     details
   </button>
</div>
<div *ngFor="let user of userDetails">{{user.id}}</div>

login_component.dart:

Future<Null> getUserDetails() async {
 try {
   userDetails = await _loginService.userDetails();
   print(userDetails);
 } catch (e) {
   errMsg = e.toString();
 }
}

login_service.dart:

Future<dynamic> userDetails() async {
    var _url = 'https://jsonplaceholder.typicode.com/users';
    try {
      var res = await _http.get(_url);
      var response = _extractData(res).map((value) => new 
      List.fromJson(value)).toList();
      return response;
       } catch (e) {
         print(e);
        }
}
dynamic _extractData(Response resp) => JSON.decode(resp.body);

list.dart

class List {
  int id;
  String name;
  List(this.id, this.name);
  factory List.fromJson(Map<dynamic, dynamic> list) =>
  new List(list['id'], list['name']);
  Map toJson() => {'id': id, 'name': name};
}

Пожалуйста, помогите мне найти решение.Также, как я могу проверить покрытие тестового кода в angulardart?

1 Ответ

0 голосов
/ 06 июня 2018

Ваш вопрос имеет много аспектов и аспектов, но не все из них могут быть решены кратко.Но вот некоторые рекомендации:

  • "Как мы можем выполнить блок , тестирующий асинхронные функции , используя тестовый пакет ...?"

    Тестовый пакет одинаково поддерживает написание как синхронных, так и асинхронных тестов.Подробности см. В разделе readme пакета в Асинхронные тесты .

  • «Как мы можем проводить модульное тестирование ... в AngularDart?»

    • Для тестирования услуг AngularDart вы можете воспользоваться только тестовым пакетом .

    • Вы можете написать тесты для компонентов AngularDart с помощью пакета angular_test .


    См. AngularDart ТестированиеРуководство Раздел Проверка компонентов для получения более подробной информации.

  • "Как я буду издеваться над конкретной функцией getUserDetails ()"

    Я предполагаю, что вы хотите протестировать свой компонент, и в этом случае вы не захотите высмеивать метод компонента getUserDetails().Вместо этого вы высмеиваете используемую службу (LoginSerice).

    Пакет Mockito позволяет очень легко создавать макеты.В разделе «Руководство по тестированию» Services: local, external, mock, real объясняется, как писать и использовать фиктивные сервисы.

  • "Как я могу проверитьтестовое покрытие кода ...? "

    В некоторых других известных мне проектах Dart используется coveralls.io , но я не использовал его лично.

Ссылки на документы, которые я дал выше, предназначены для Angular 5 .Руководство по тестированию Angular 4 здесь .

...