AngularJS: 如何编写表单提交的Jasmine 测试?

AngularJS: How to write Jasmine test for form submit?

我想自动提交指令模板中的表单。下面是相同的指令代码:

link: function(scope, el) {
    $timeout(function() {
       el.submit();
    });
}

这段代码如何写Jasmine测试?

我能够通过监视提交函数并将调用委托给提供的函数来解决我的问题。

这在每个块之前:-

element = angular.element(html);
compiledDirective = _$compile_(element)($scope);
$scope.$digest();
form = element[0];
spyOn(form, 'submit').and.callFake(function() {
    return false;
});

然后在 it() 函数中测试提交代码:-

it('check if it submits the form', function() {
    $timeout.flush();
    expect(form.submit).toHaveBeenCalled();
});