【发布时间】:2016-06-08 05:21:21
【问题描述】:
我有一个使用 Angular 资源进行 API 调用的工厂。然后我创建了一个名为 getObjectById 的函数,并使用工厂查询该对象,然后在返回之前修改该对象。
服务:
return getObjectById: function(id) {
return objectFactory.getById({ id: id }).$promise.then(function(response) {
return modifyObject(response.object);
});
}
我想测试 modifyObject() 是否正常工作,但 modifyObject 是私有函数。
所以为了测试它,我试图模拟响应对象工厂返回的带有间谍的对象。
测试:
beforeEach(function() {
inject(function(objectFactory, $q) {
spyOn(objectFactory, 'getById').and.returnValue({ $promise: $q.when(readJSON('test/resources/object.json'))});
});
});
但每次我运行测试时都会出现错误:
TypeError: 无法读取未定义的属性“returnValue”
如果我能得到任何帮助以使其正常工作,那就太好了。甚至建议我的布局是否错误。使用最新版本的 Jasmine
【问题讨论】:
-
.and.语法是从 Jasmine 2.0 开始的,您使用的是 2.* 版本吗? -
是的,我正在使用最新版本的 Jasmine
标签: angularjs unit-testing jasmine promise