Angular 2 Jasmine не может проверить форму отправки - PullRequest
0 голосов
/ 09 октября 2018

Привет, я пишу тестовый блок в Жасмин.Я новичок в Жасмин.У меня есть одна форма в формате HTML, и я пытаюсь написать для этого модульный тест.

Ниже приведен мой HTML-код для формы.

<form *ngIf="formResetToggle" class="form-horizontal" name="tenantEditorForm" #f="ngForm" novalidate
      (ngSubmit)="f.form.valid ? saveTenant() :
      (!tenantname.valid && showErrorAlert('Tenant name is required', 'Please enter a name for the tenant'));">

</form>

Ниже приведена спецификация.

it('Save Tenant', fakeAsync(() => {
        fixture.detectChanges();
        spyOn(component, 'saveTenant');
        let submitButton = fixture.debugElement.query(By.css('#saveTenant'));
        submitButton.triggerEventHandler('click', null);
        tick();
        fixture.detectChanges();
        expect(component.saveTenant).toHaveBeenCalled();
    }));

Эта спецификация дает мне ошибку

Ожидается, что был вызван спасатель-шпион.

Может кто-нибудь помочь мне разобраться в проблеме?Любая помощь будет оценена.Спасибо

1 Ответ

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

Основная проблема здесь вызвана тем, что debugElement.triggerEventHandler методы запускают обработчики событий, которые были зарегистрированы на current debugElement, в то время как вы хотите обработать событие submit на form.

Inв этом случае я бы предложил вам использовать вместо этого собственное событие click.

submitButton.nativeElement.click();

См. также:

Пример плунжера

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