Как выполнить оператор модульного теста 'chart.chart.update ()' в jasmine? - PullRequest
0 голосов
/ 23 октября 2018

У меня есть приложение Angular 4, и я использую angular2-chartjs для построения диаграмм в своем приложении.

В компоненте я импортировал следующее:

import { ChartComponent } from 'angular2-chartjs';
import { ChartModule } from 'angular2-chartjs';

Создал диаграммусвойство:

@ViewChild(ChartComponent) chart: ChartComponent;

Теперь я передаю этот объект диаграммы методу службы из компонента:

this.chartService.updateChartWith(this.chart);

Теперь в службе диаграммы я обновляю диаграмму:

public updateChartWith(chart: ChartComponent) {
   /** Some code **/
    chart.chart.update();
}

График работает отлично.Я хочу написать модульный тест для метода updateChartWith () в Жасмин.Как написать модульный тест для chart.chart.update () строка кода в Жасмин?

1 Ответ

0 голосов
/ 25 октября 2018

Если я что-то упустил, я думаю, что это довольно просто.Вы не хотите модульно тестировать чужой код (в данном случае chart.js), поэтому вы можете просто захотеть определить, вызывается ли chart.chart.update () в сервисе диаграммы.Я бы настроил для этого шпиона, примерно так:

it('updateChartWith() should call chart.update()', () => {
    chartSpy = jasmine.createSpyObj({ update: null });
    chartMock = {chart: chartSpy};
    service.updateChartWith(chartMock);
    expect(chartSpy.update).toHaveBeenCalled();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...