Winkel-2 Custom validation unit-Tests
ich Schreibe custom angular(Eckig 2.0.0) Validierung nach dieser Anleitung https://angular.io/docs/ts/latest/cookbook/form-validation.html#!#custom-Validierung .
@Directive({
selector: '[ngModel][emailValidator]',
providers: [{provide: NG_VALIDATORS, useExisting: EmailValidatorDirective, multi: true}]
})
export class EmailValidatorDirective implements Validator
Nun bin ich versucht, hinzufügen von unit-test zu meiner benutzerdefinierten überprüfung der Richtlinie.
beforeEach(() => {
fixture = TestBed.createComponent(EmailComponent);
component = fixture.componentInstance;
de = fixture.debugElement;
el = de.nativeElement;
component = de.componentInstance;
emailField = de.query(By.css('input')).nativeElement;
});
Ich bin mir der Zugriff auf all diese Objekt, aber man hat keine Informationen über die Korrektheit der Eingabe. Wer hat eine Idee, wie man den Zugriff auf die NgControl meiner Eingaben innerhalb der Unit-Tests, oder wie kann ich überprüfen, für gültig/ungültig(benutzerdefinierte Gültigkeitsprüfung) Eingabefeld.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie tun müssen ist, den Injektor, der die
NgForm
. Es dauerte eine Weile, um es herauszufinden. Ich dachte, Sie könnte es von derdebugElement
, aber es sieht aus wie Sie benötigen, um es von Kind1.Den Sie nur können einzelne Steuerelemente aus der Formular-Gruppe mit
Oder Sie können einfach überprüfen Sie die form für einen bestimmten Fehler
Unten ist eine komplette test
1 - Fand es in der Quellcode-tests
browser_util
bewegt hat, zuimport { dispatchEvent } from '@angular/platform-browser/testing/src/browser_util';
Den oben beste Antwort hat nicht funktioniert für mich, aber ich war in der Lage zu testen, meine benutzerdefinierte Prüfung in der folgenden Weise: