【发布时间】:2014-01-29 17:52:45
【问题描述】:
我正在测试的服务有这个功能(例如):
doSomething : function(userID,boolean){
var t = otherService.getSomething();
var params = somedata;
var deferred = $q.defer();
if (boolean){
Restangular.one("users",userID).post("copy",params).then(function(data){...
我只是想在 Restangular 上做一个间谍,看看它是否获得了正确的参数、端点等来使用。
所以我做了一个restangular mock:
mockRestangular = {
one:function(){return this}
},
post:function(){
},
all:function(){
}
};
},
//also tried:
// one: function(){return {post:function(){}};}
};
但我无法在模拟中的嵌套帖子上设置茉莉花间谍:
spyOn(mockRestangular.one,'post')我得到post() method does not exist
函数调用也失败了
someService.doSomething(params)
因为它可以找到 post 方法。
请注意,我需要将 post 方法嵌套到 one 方法中。如果我只是把一个变成一个对象,它会因为缺少 one 方法而失败。
我猜我遗漏了一些明显的东西,但我整个早上都在思考这个问题并且完全失败了
编辑:
将andCallThrough() 添加到间谍中使所有部分都朝着正确的方向解决。如果有一天有人会来看,我会更新答案。
【问题讨论】:
-
模拟注入在哪里?你认为你可以创建一个 plunker 吗?
-
感谢您的帮助,但我只是想通了,当我将
andCallThrough()与间谍一起使用时,一切都开始朝着正确的方向发展。不是很直观,至少对我而言
标签: angularjs jasmine restangular