Как проверить метод простой суммы в Angular 5?

Я буквально любитель, когда дело касается тестирования в Angular 5.

Это мой простой компонент:

interface TotalAmount {
  alphaAmount: number;
  betaAmount: number;
}

export class TransactionSummaryComponent implements OnInit {

  private id = 1;
  transactionSummary: TransactionSummary;
  totalAmount: TotalAmount;

  constructor(private payService: PayService) {
  }

  ngOnInit(): void {
    this.loadTransactionSummary();
  }

  loadTransactionSummary(): void {
    this.payService.getTransactionSummary(this.id).subscribe((data) => {
      if (data !== null) {
          this.transactionSummary = data;
          this.calculateTotalAmount();
        }
      }
    );
  }

  calculateTotalAmount(): void {
    this.totalAmount = {
      alphaAmount: this.transactionSummary.alphaAmountNew + this.transactionSummary.alphaAmountOld,
      betaAmount: this.transactionSummary.betaAmountNew + this.transactionSummary.betaAmountOld
    };
  }
}

Как видите, это действительно просто. Я загружаю данные с помощью http-сервиса loadTransactionSummary(), затем запускаю метод calculateTotalAmount(), который суммирует полученные данные.

Интересно, как мне проверить этот метод calculateTotalAmount(). Поскольку есть некоторая бизнес-логика, ее следует протестировать. Верно? Должен ли я действительно делать http-запрос для получения данных transactionSummary или, может быть, мне нужно как-то издеваться над этими данными? Как лучше всего поступить в таком случае? Вы можете привести мне пример?

Да, вы должны абсолютно имитировать данные. Прочтите документы: angular.io/guide/testing.

jonrsharpe 10.05.2018 20:42

Вы прочитали потрясающий учебник по тестированию, который есть в документации команды Angular? Я думаю, что они должны быть большим подспорьем и показать вам, как именно это сделать. angular.io/guide/testing

Daniel W Strimpel 10.05.2018 20:42
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
2
78
0

Другие вопросы по теме