Жасмин: модульный тест следит за вызовом вложенной функции - PullRequest
0 голосов
/ 26 сентября 2019

Я запускаю юнит-тест для углового приложения, я шпионю за func1, если это называется?Но внутри func1 я называю func2, я хочу шпионить, вызывается func2 или нет.Как структурировать мой юнит-тест? Я использую жасмин.

Вот что я попробовал

component.spec.ts

let spyOnCreateEntitlement = spyOn(component,"func1").and.callThrough();
let spyOnSetRecord = spyOn(component,"func2").and.callThrough();
fixture.detectChanges();
expect(func1).toHaveBeenCalled();//passes
expect(func2).toHaveBeenCalled();//fails!!!!

component.ts

func1(){
 func2();
}

func2(){
 ...some logic...
}

1 Ответ

1 голос
/ 26 сентября 2019

Я попытался воспроизвести: component.ts

    testFunction1() {
        this.testFunction2();
    }

    testFunction2() {
    }

spec.ts:

    it('should call functions', () => {
        let spyOnCreateEntitlement = spyOn(component, 'testFunction1').and.callThrough();
        let spyOnSetRecord = spyOn(component, 'testFunction2').and.callThrough();

        component.testFunction1();

        expect(spyOnCreateEntitlement).toHaveBeenCalled();
        expect(spyOnSetRecord).toHaveBeenCalled();
    });

=> тест пройден.Я предполагаю, что причина в том, что у вас есть 'ожидайте (func1) .toHaveBeenCalled ()', вы должны либо указать здесь свое имя шпиона, либо ИЛИ component.func1

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