1
我有一个包装RESTful API的资源。我使用的资源,从我的控制器创建新的对象,并将其保存,类似这样的片段从角文档:
var newCard = new CreditCard({number:'0123'});
newCard.name = "Mike Smith";
newCard.$save();
当写在茉莉花一个单元测试,我得到以下错误时,$保存通话执行:“无法读取属性$ promise'未定义”。
什么是最好的方法来测试我的控制器中包含上述代码的方法?
也许你应该表明触发错误的代码。我的猜测是你正在监视一个应该设置$ promise属性的资源方法......当你使用spyOn()时,原始函数被替换为一个执行间谍活动的函数...原始函数没有执行,所以没有承诺永远返回/设置。但是你可以通过'spyOn(resource,“$ save”)。和.CallThrough()'来获得间谍功能和原始函数的执行。 – 2014-11-21 00:13:33
你是对的Sunil。 spyOn是spyOn(_cardService,'save');当我添加callThrough时,它会执行没有承诺错误的测试。如果您将评论移至答案,我会将其标记为这样。谢谢! – witters 2014-11-21 13:27:13
很高兴它被解决了,发布作为答案:) – 2014-11-21 15:37:33