本文介绍了无法获得未定义的属性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
尝试为我的角度httpbased服务运行单元测试:
Trying to run a unit test for my angular httpbased service:
angular.module('myApp').factory('httpService',function($http)
{
return {
sayHello:function(usr){
$http.get('/api/doit').then(
function(result){
return 'hello '+usr;
});
}
}
});
这是测试:
it('should say hello from httpservice', function() {
var returnData = 'hello Tomss';
httpBackend.expectGET('/api/doit').respond(returnData);
var returnedPromise = httpService.sayHello('Tom');
var result;
returnedPromise.then(function(response) {
result = response;
});
httpBackend.flush();
expect(result.data).toEqual('hello Tom');
});
我收到错误消息:
TypeError: Unable to get property 'then' of undefined or null reference
如何解决这个问题?
plunkr:
推荐答案
return {
sayHello:function(usr){
return $http.get('/api/doit').then(
function(result){
return 'hello '+usr;
});
}
}
注意sayHello函数的返回。
Notice the return in sayHello function.
这篇关于无法获得未定义的属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!