Как проверить, что вызывается функция проверки - PullRequest
0 голосов
/ 27 сентября 2019

В моем html (Angular form) у меня есть поле, и значение в этом поле должно быть проверено с использованием пользовательского метода

<input type="text" id="username" class="form-control" placeholder="username" formControlName="userName" [ngClass]="validateField('userName')" required>

Я хочу написать пример модульного теста, который должен проверять, что метод validateField вызывается при изменении значения поля.Я написал следующий тестовый пример, но я получаю сообщение об ошибке при вызове метода.

  fit('it should validate that the data in username and password field has correct format',()=>{
    let navComponent = component;
    let helperService = TestBed.get(HelperService);
    spyOn(helperService,'validateField');
    let formControls = navComponent.loginForm.controls;
    let email = 'test@test.com';
    let password = 'testpassword';
    formControls['userName'].setValue(email);
    fixture.detectChanges();
    expect(helperService.validateField).toHaveBeenCalledWith(navComponent.loginForm,'userName');
    formControls['password'].setValue(password);
    fixture.detectChanges();
    expect(helperService.validateField).toHaveBeenCalledWith(navComponent.loginForm,'password');

  });

Ошибка

Ожидается, что шпион validateField будет вызван с [FormGroup ({validator: null, asyncValidator: null, _... Объект ({userName: 'test@test.com', пароль: ''}), ошибки: null}), 'userName'], но он никогда не вызывался.

Как проверить, что метод вызывается?

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