Я буквально любитель, когда дело касается тестирования в 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? Я думаю, что они должны быть большим подспорьем и показать вам, как именно это сделать. angular.io/guide/testing





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