gpt4 book ai didi

angularjs - 如何在 Jasmine for AngularJS 中对表单有效/无效进行单元测试?

转载 作者:行者123 更新时间:2023-12-02 23:42:04 25 4
gpt4 key购买 nike

Given 和 AngularJS 应用程序具有:

名为“LoginForm”的表单

<div class="well well-large loginForm" ng-controller="LoginController" ng-hide="isAuthenticated">
<form id="loginForm" class="form-signin" name="LoginForm">
<h2 class="form-signin-heading">Please sign in</h2>
<input type="text" name="username" ng-model="user.username" required
class="input-block-level input-large" placeholder="Username" autocorrect="off" autocapitalize="off" tabindex="1">
<input type="password" name="password" ng-model="user.password" required
class="input-block-level input-large" placeholder="Password" tabindex="2">
<p ng-show="error401" class="text-error">Username and/or password was incorrect</p>
<p ng-show="error500" class="text-error">Whoops! Something went wrong</p>
<button class="btn btn-primary loginButton" ng-click="login(user)" tabindex="3">Sign in</button>
</form>
</div>

名为“LoginController”的 Controller ,具有 $scope.login() 函数

$scope.login = function(user) {
if ($scope.LoginForm.$invalid) {
log('LoginForm is invalid');
return;
} else {
log('LoginForm is valid');
}
// ... snip ... other stuff like actual ajax login ...
}

如何为 $scope.LoginForm.$invalid 编写 Jasmine 测试?

我发现它是一个只读属性,所以我尝试在 $scope 上设置一个模拟对象:

scope.LoginForm = {
"user" : {
"password": "something"
}
};

上面的内容仍然通过了验证,尽管它不应该通过验证,因为这两个字段都是必需的。

最佳答案

您可以在单元测试中将 $invalid 属性设置为 true:

$scope.LoginForm.$invalid = true;

关于angularjs - 如何在 Jasmine for AngularJS 中对表单有效/无效进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16691220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com