如何在AngularJS中单元测试两个具有相同名称的输入文本框

时间:2017-04-09 09:47:43

标签: angularjs unit-testing

我有一个代码,其中有两个字段具有相同的输入名称,如下所示

<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>

如何为此编写Angular JS Unit TestCase?

我的下面的代码看起来像这样,但它不起作用,它会抛出一条错误消息,说SetView值未定义

 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);
    });

1 个答案:

答案 0 :(得分:0)

根据Nikoj的评论,

我发现表达式值解决问题的设置。在我的情况下,max_length是表达式

   $scope.$apply('max_length=5');