AngularJS + jasmine+karma:在控制器中模拟服务响应
AngularJS + jasmine+karma: service response mocking in controller
我正在努力测试有调用服务的角控制器方法,例如:
function methodInController() {
service.callToService()
.success(function(){})
.error(function(){});
}
如何模拟service.callToService()?因为现在因果报应读取控制器并抛出TypeError: 'undefined'不是对象<…> near .error(function(){})
使用$q
创建承诺并返回。
var deferred = $q.defer();
spyOn(service, 'callToService').and.returnValue(deferred.promise);
deferred.resolve({fake: 'data'});
$scope.$digest();
expect(service.callToService).toHaveBeenCalledWith({some: 'arguments'});
expect(controller.myCuccessHandler).toHaveBeenCalled();
expect(controller.myErrorHandler).not.toHaveBeenCalled();
等。重复并调整您的失败案例和您想要测试的任何其他内容。
相关文章:
- 茉莉花和角度模拟 :模拟处理本地存储的服务
- 我们如何模拟我们的服务来测试控制器
- 模拟服务返回promise:无法读取未定义的属性
- AngularJS中的模拟服务
- 如何在同一个服务中模拟一个方法
- Angular单元测试,模拟使用$injector注入的服务
- 服务有一个模拟的服务依赖,它返回承诺,在测试中挣扎
- 如何使用sinon模拟$timeout服务
- 没有注入模拟服务,而是注入了实际服务
- 如何注入在app.run函数中使用的模拟angular服务?
- 如何在模拟Angular服务中从JSON fixture中提取数据
- 如何模拟带参数的Angular服务方法
- 如何在AngularAMD应用程序单元测试中模拟服务
- AngularJS 中的单元测试 - 模拟服务和承诺
- 你如何模拟 Angular 服务这是一个函数
- 用nock模拟soap服务
- 在AngularJS中模拟控制器单元测试的依赖服务
- AngularJS茉莉服务模拟
- AngularJS + jasmine+karma:在控制器中模拟服务响应
- 轻松模拟restful服务的工具