在测试角度控制器时,通过调用$ rootScope.new()来创建新范围并非总是必需的吗?测试角度控制器:何时创建新的范围?
这里是我的控制器:
myControllers.controller("myCtrl1", ['$scope', function($scope) {
$scope.todos = [{"name": "Learn Angular"}, {"name": "Install Karma"}];
$scope.date = '1/1/2014';
}]);
这里是我的测试通过:
describe("controllers", function() {
var $scope, $rootScope, $controller;
beforeEach(function() {
module("myApp.controllers");
});
beforeEach(inject(function(_$controller_) {
$controller = _$controller_;
//scope = $rootScope.new() **When would you do this?**
}));
//Basic Controller
it("sets todos on scope", function() {
var scope = {}; //**Creating an empty scope object**
$controller("myCtrl1", {$scope : scope});
expect(scope.todos.length).toBe(3);
});
});
我,我需要我每次测试控制器时间创建一个新的清洁范围的前提下,但是上面的测试通过显然是错误的。任何解释?
在此先感谢!
一般而言,我只是简单地创建一个新的范围,并称它为一天。它们很便宜,当您决定切换实施时,您不必重构大量代码。这就是说,很好的答案。 :) –