【发布时间】:2015-02-16 07:59:46
【问题描述】:
我真的不明白什么时候应该在我的角度单元测试中使用 $rootScope = $rootScope.$new()。这截断了您在许多单元测试示例中看到的内容。但在以下示例中不起作用:
angular.module("app.root", []).factory("rootFct", function ($rootScope) {
$rootScope.amount = 12;
return {
getAmount: function () {
return ($rootScope.amount + 1);
}
}
});
相关的单元测试不起作用:
describe('Amount Tests', function() {
var rootFct, $rootScope;
beforeEach(function() {
angular.mock.module("app.root");
angular.mock.inject(function (_rootFct_, _$rootScope_) {
$rootScope = _$rootScope_.$new();
rootFct = _rootFct_;
});
});
it('Set Amount in rootScope on 10', function() {
var result = rootFct.getAmount();
expect(result).toBe(13);
$rootScope.amount = 15;
result = rootFct.getAmount();
expect(result).toBe(16);
});
});
它只在我更改时有效
$rootScope = _$rootScope_.$new();
到
$rootScope = _$rootScope_;
所以我真的不明白什么时候使用 $new() 以及它有什么用处?
【问题讨论】:
标签: javascript angularjs unit-testing jasmine