Angularjs 角单元测试.控制器中的模拟方法
我需要模拟控制器中的服务方法。我知道如何模拟像service.method这样的简单服务,但不像这个。我不知道如何模仿“action.user.update”。如果我试图监视它,我会收到一个错误“无法读取未定义的”属性“更新” 我的服务:Angularjs 角单元测试.控制器中的模拟方法,angularjs,unit-testing,jasmine,karma-jasmine,Angularjs,Unit Testing,Jasmine,Karma Jasmine,我需要模拟控制器中的服务方法。我知道如何模拟像service.method这样的简单服务,但不像这个。我不知道如何模仿“action.user.update”。如果我试图监视它,我会收到一个错误“无法读取未定义的”属性“更新” 我的服务: .service('action', ['$http', '$q', function ($http, $q) { var service = {}; service.user = { update: function (
.service('action', ['$http', '$q', function ($http, $q) {
var service = {};
service.user = {
update: function (data, config) {
return service.run({
name: config.name,
call: $http({
method: "POST",
url: "/user/edit",
data: data
}),
success: config.success,
error: config.error
});
}
};
return service;
}]);
你已经走到一半了
$provide.value('action', action);
其中操作应该是在单元测试中创建的对象
i、 e
然后在测试中
scope.saveUser()
expect(action.user.update).toHaveBeenCalled()
更新小提琴
行动在哪里
scope.saveUser()
expect(action.user.update).toHaveBeenCalled()