我有一个 Angular JS 应用程序,其中包含一个模块和一些服务。我的控制器使用这些服务。在 Jasmine 测试用例中,我使用 Jasmine 的createSpy
. 以下是模拟服务:
beforeEach(module(function ($provide) {
shoppingData = function () {
getAllItems: jasmine.createSpy('getAllItems');
addAnItem: jasmine.createSpy('addAnItem');
removeItem: jasmine.createSpy('removeItem');
};
$provide.value('shoppingData', shoppingData);
}));
控制器在getAllItems
创建对象后立即调用该函数。我创建了另一个beforeEach
创建控制器对象的块。以下是检查是否getAllItems
被调用的测试块:
it("Should call getAllItems function on creation of controller", function () {
expect(shoppingData.getAllItems).toHaveBeenCalled();
});
当我在浏览器上运行规范运行器页面时,测试失败并出现以下错误:TypeError: 'shoppingData.getAllItems' is not a function
我看到了几个类似的例子,这种测试没有任何问题。谁能指出这里缺少什么或出了什么问题?