Zważywszy i angularjs aplikacja z:W jaki sposób test jednostkowy dla formularza jest/nie jest prawidłowy w Jasmine dla AngularJS?
formularz o nazwie '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>
Kontroler nazwie 'LoginController', z funkcją $ 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 ...
}
Jak zrobić Piszę test Jasmine dla $ scope.LoginForm. $ Invalid?
znalazłem, że jest to właściwość tylko do odczytu, więc próbowałem skonfigurować makiety obiektu na $ zakresie:
scope.LoginForm = {
"user" : {
"password": "something"
}
};
Powyższy nadal przechodzi walidacji, mimo że nie powinien mieć, bo oba pola są wymagane .
Mam nadzieję, że Cię źle zrozumiałem i że naprawdę chcesz przetestować różne dane wejściowe, aby sprawdzić, czy sprawdzają ...? :) Jeśli tak, powinieneś sprawdzić test e2e. –