无法调用$ scope.form。$在jasmine测试中提交:undefined

时间:2015-01-26 21:54:33

标签: javascript angularjs unit-testing angularjs-directive jasmine

Angularjs 1.3.0-beta.8

我正在尝试测试表格是否已提交。

这是测试

it ('should submit when I TELL IT TO DO SO!!!', function(){
  element.find('button').trigger('click'); // form button that calls submit funtion
  expect( element.isolateScope().validationFieldsForm.$valid ).toBe( true );
});

上述测试工作正常。我可以访问$ valid。但是,当我再次运行相同的测试但是这样修改时......

it ('should submit when I TELL IT TO DO SO!!!', function(){
  element.find('button').trigger('click'); // form button that calls submit funtion
  expect( element.isolateScope().validationFieldsForm.$submitted ).toBe( true );
});

上述测试将导致“未定义”。事实上,如果我甚至在指令中调用$ scope.myFormName。$这也不起作用,但是$ error,$ valid,$ invalid,$ setValidity等...都工作。

Angularjs说$ submit应该在表单控件对象中可用。

  

angularjs form controller

1 个答案:

答案 0 :(得分:2)

在您使用的版本中,$submitted似乎不存在。请参阅docs for 1.3.0-beta.8。这已添加version 1.3.0-beta.18