gpt4 book ai didi

AngularJS E2E/功能测试 Controller

转载 作者:行者123 更新时间:2023-11-28 21:28:53 28 4
gpt4 key购买 nike

我刚开始使用 AngularJS 进行测试。请帮我解决它。我的剧本

angular.module('test', [])
.controller('ctrl', ['$scope', 'svc', function ($scope, svc) {
$scope.data = [];
svc.query()
.then(function (data) {
$scope.data = data;
});
}]);

和测试规范

describe('ctrl', function () {
var ctrl, scope, svc, def, data = [{name: 'test'}];
beforeEach(module('test'));
beforeEach(inject(function($controller, $rootScope, $q) {
svc = {
query: function () {
def = $q.defer();
return def.promise;
}
};
var a=jasmine.createSpy(svc, 'query');
scope = $rootScope.$new();
controller = $controller('ctrl', {
$scope: scope,
svc: svc
});
}));
it('should assign data to scope', function () {
def.resolve(data);
scope.$digest();
expect(svc.query).toHaveBeenCalled();
expect(scope.data).toBe(data);
});
});

它失败了:错误:需要一个 spy ,但得到了函数。在 http://cdn.jsdelivr.net/jasmine/2.0.0/jasmine.js (第 2125 行)。你能帮帮我吗

最佳答案

您收到该错误是因为它在 expect 方法上失败。 expect 方法期望传入一个 spy ,但实际上没有。要解决此问题,请执行以下操作:

spyOn(svc, 'query').andCallThrough();

关于AngularJS E2E/功能测试 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30661665/

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