2017-04-09 1 views
0

ich einen Code haben, wo es zwei Felder mit gleichen Eingangs Namen wie untenWie Unittest zwei Eingangstextfelder mit dem gleichen Namen in AngularJS

gezeigt
<input ng-if="max_length == 5" type="text" name="zipcode" value="" ng-model="store_zip.zipcode" ng-pattern="/^[0-9]*$/" ng-maxlength="max_length" required> 
<input ng-if="max_length == 7" type="text" name="zipcode" value="" ng-model="store_zip.zipcode" ng-pattern="/^[a-zA-Z0-9]*$/" ng-maxlength="max_length" required> 

Wie Angular JS Einheit Testcase für diese schreiben?

Mein Code unten sieht aus wie etwas, aber es funktioniert nicht und es wirft eine Fehlermeldung, SetView Wert nicht definiert ist

it('with a Invalid ZipCode -75678', function() 
    { 
       form.zipcode.$setViewValue('75678'); 
       $scope.$digest(); 
       expect(form.zipcode.$valid).toBe(true); 
       expect(createsiteform.zipcode.$error.maxlength).toBe(undefined); 
       expect(form.zipcode.$error.pattern).toBe(true); 
    }); 
+0

Haben Sie die 'max_length'-Scope-Variable auf 5 oder 7 festgelegt? Ng-if entfernt das Element aus dem DOM, wenn der Ausdruck falsch ist, wodurch 'form.zipcode' undefiniert werden würde. –

+0

Wie man max_length ist 5 über UnitTesting Skript? Ist das möglich? – Shan

+0

Ich denke, Sie könnten es einfach während der Testeinrichtung mit '$ scope.max_length = 5' setzen. –

Antwort

0

Basierend auf Nikoj Kommentar,

fand ich die Einstellung des Ausdruckswert aus behebt das Problem. In meinem Fall max_length ist der Ausdruck

Verwandte Themen