gpt4 book ai didi

javascript - 无法读取 null 的属性 'spyOn' - 在 angularJS 单元测试中模拟 promise

转载 作者:行者123 更新时间:2023-11-28 07:54:56 25 4
gpt4 key购买 nike

我正在尝试使用spyOn 和以下代码来模拟一个返回 promise 的函数:

  beforeEach(inject(function($controller, $rootScope, $q) {
scope = $rootScope.$new();
q = $q;

ctrl = $controller('BillingCtrl', {
$scope: scope,
$q: q
});
}));

it('should have overlay off when cancel modal is shown',
function() {

var deferred = q.defer();
deferred.resolve();

spyOn(scope, 'confirmModal').andReturn(deferred.promise);

scope.cancelSubscription(""); //scope.confirmModal is called within here.
expect(scope.overlayOn).to.equal(true);
});

这会引发此错误:

Chrome 37.0.2062 (Mac OS X 10.9.2) Unit: BillingController "before each" hook: workFn FAILED
TypeError: Cannot read property 'spyOn' of null

scope.confirmModal 肯定存在于这种上下文中,因为我能够 console.log 它。

任何指示将不胜感激!

最佳答案

我明白了。

Mocha 与 Jasmine 发生冲突(我同时使用它们)。

当我删除 Mocha 时,spyOn 函数工作正常。

关于javascript - 无法读取 null 的属性 'spyOn' - 在 angularJS 单元测试中模拟 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26215265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com