javascript - Angularjs - 如何单元测试表单验证

标签 javascript angularjs jasmine

我正在使用 Jasmine对我的 Angular 应用程序进行单元测试。如何在我的 Controller 中测试表单验证?比如我有一个登录功能:

$scope.login = function() {
    if($scope.form_login.$valid) {
      //send request with username and password
    };
};

我正在尝试将 $valid 设置为 true,但我无法访问此处的表单。我得到一个错误 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();
})

最佳答案

单元测试不应该真正测试表单。要测试表单和其他与 Controller 无关的事情,请使用端到端测试。

但是,如果您真的想在单元测试中测试验证,请参阅 To test a custom validation angularjs directiveHow to unit test angularjs form?

关于javascript - Angularjs - 如何单元测试表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36928333/

相关文章:

javascript - 在悬停中使用 jquery 启动和停止计时器

javascript - Canvas 饼图 : Having ctx. FillText() 出现问题,因此我的标签无法正确显示

javascript - getJSON 执行一个帖子

javascript - 使用 AngularJS 的 Web 应用程序 : Show error-page in case JavaScript deactivated in browser

angularjs - 当没有 $scope 强制摘要时,如何解决 AngularJS、Jasmine 2.0 中的 promise ?

javascript - jquery div 子窗体事件淡出

javascript - 在带有索引的 for 循环中创建函数

css - 如何在 AngularJS 中应用绑定(bind)到模型的样式规则?

javascript - 如何在 Jasmine 中使用窗口对象?

javascript - 为什么 Jasmine 不在这个异步测试中执行 it() ?