Angularjs - how zu unit-test-Formular-Validierung
Ich bin mit Jasmin unit-Tests meine Winkel-App. Wie kann ich testen, Formular-Validierung in meinen controller? Zum Beispiel habe ich eine login-Funktion:
$scope.login = function() {
if($scope.form_login.$valid) {
//send request with username and password
};
};
Ich versuche $valid
zu true
, aber ich kann keinen Zugriff auf das Formular hier. Ich bekam eine Fehlermeldung TypeError: Cannot set property '$valid' of undefined
:
it('should not send request if form validation fails', function() {
$controller('loginController', {$scope: $scope});
$scope.form_login.$valid = true;
$scope.login();
})
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unit-test sollte nicht wirklich testen das Formular. Um das Formular zu testen und andere nicht-controller-bezogene Dinge verwenden e2e-Tests.
Allerdings, wenn Sie wirklich wollen, um zu testen, Validierung in unit-test-siehe Testen Sie eine benutzerdefinierte Validierung angularjs Richtlinie oder Wie unit-Tests angularjs form?
Wenn Sie einen Dienst verwendet, der für das speichern der Daten
Prüfen Sie, ob Ihr service noch nicht genannt worden und verhöhnen die $scope.form_login.$valid-Eigenschaft, um false;