【发布时间】:2014-05-17 13:06:33
【问题描述】:
全部,
我有一个 AngularJS 控制器的单元测试套件,它遵循beforeEach() 模式:
var ResourcesCtrl,
scope, rootScope, loc, ctrl;
// Initialize the controller and a mock scope
beforeEach(inject(function ($controller, $location) {
scope = {};
rootScope = {};
loc = $location;
ctrl = $controller;
scope.instanceName = 'TestInstance';
ResourcesCtrl = $controller('ResourcesCtrl', {
$scope: scope,
$rootScope: rootScope,
$location: loc
});
}));
然后是一堆 it() 带有断言的块/期望所有都按预期工作。
现在我需要做的是,在我添加的一个测试用例中,更改scope.instanceName 的值;但是,似乎即使我在it() 测试用例中更改了它的值,也没有反映在控制器的范围内。我已经尝试在测试用例中使用新范围实例化控制器,但这也没有奏效。
所以我的问题如下:如何更改/覆盖在beforeEach() 设置中传递给控制器的变量?
【问题讨论】:
标签: angularjs unit-testing karma-runner