如何使用异步验证器测试Angular 4字段验证

时间:2018-05-15 21:24:16

标签: validation asynchronous

如何使用异步验证器测试表单?您能否提供代码示例。 我正在使用下面的测试

测试具有异步验证器的下面的电子邮件字段
email: ['', Validators.compose([                        Validators.composeAsync([                                                           emailValidator.validateEmail.bind(this)])]
                });


it('email field invalid because of domain', fakeAsync(() => {        
            const hostElement = fixture.nativeElement;
            const emailInput: HTMLInputElement = hostElement.querySelector('#email');
            emailInput.value = 'user@yahoo.com';
            emailInput.dispatchEvent(new Event('input'));

            fixture.detectChanges();
            const email = component.email;

            console.log('valid : ' + email.valid); //false
            console.log('errors : ' + JSON.stringify(email.errors)); // null
    });

异步验证程序返回observable,并在控制台中打印正确的值,表示错误,但即使电子邮件无效,电子邮件也没有错误。

我错过了什么? 谢谢

0 个答案:

没有答案