我目前正在为以角度版本实现的项目创建单元测试。 1.2
我创建了一个mockService,返回一个延迟的promise,用于我的控制器测试。服务方法如下所示:
function getItems() {
var deferred = $q.defer();
deferred.resolve(["item1", "item2"]);
$rootScope.$apply();
return deferred.promise;
}
当我调用此服务方法并执行deferred.resolve时,我收到错误
TypeError: 'undefined' is not an object (evaluating 'promise.data.map')
有谁知道promise.data.map
是什么以及我需要做些什么来修复错误?
答案 0 :(得分:0)
以下是您问题的解决方案
在您的问题中,您试图在控制器中定义的导致问题的promise
值之前调用rootScope
。因此它返回未定义的值。
尝试在rootScope
中的controller
值之后定义承诺,这可能会修复错误消息
希望这个解决方案可以帮到你一点。