【发布时间】:2016-08-11 08:18:58
【问题描述】:
我想为一个控制器写一个简单的测试
- 将范围的变量设置为 ID
- 调用触发 API 调用的函数,其 ID 位于范围内
- 记录结果
describe('The app', () => {
beforeEach(angular.mock.module('myModule'));
var $controller;
var eId = 123456;
beforeEach(angular.mock.inject((_$controller_) => {
$controller = _$controller_;
}));
describe('directive', () => {
it('should load the data from the api', () => {
var scope = {};
var controller = $controller('myController', { $scope: scope });
scope.entityId = eId;
expect(scope.entityId).toBe(eId);
controller.load(); // API call using scope.entityId, to load some data into the scope
scope.$digest();
console.log("entities:", controller.entities); // Where the data should be loaded into
});
});
});
我的控制器使用"controller as" 语法。
我的测试是用业力运行的,它给了我以下错误:
TypeError: $scope.$watch 不是函数 |在 myController.watchChanges
非常感谢任何正确方向的提示!
【问题讨论】:
标签: angularjs unit-testing controller karma-jasmine