Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 茉莉花http回报承诺_Angularjs_Jasmine_Promise_Karma Runner - Fatal编程技术网

Angularjs 茉莉花http回报承诺

Angularjs 茉莉花http回报承诺,angularjs,jasmine,promise,karma-runner,Angularjs,Jasmine,Promise,Karma Runner,我想从一个url测试te响应的状态,保存在一个对象中,但是karma向我显示了以下错误:预期的承诺({&&state:object({status:0}})})为(whatelse) Mi服务是: angular.module('ServiceModule', []). service('anonymous_Login_Services', ['$http','$q', function($http,$q){ var data={dato:null,estado:null}; this

我想从一个url测试te响应的状态,保存在一个对象中,但是karma向我显示了以下错误:预期的承诺({&&state:object({status:0}})})为(whatelse)

Mi服务是:

angular.module('ServiceModule', []).
  service('anonymous_Login_Services', ['$http','$q', function($http,$q){

 var data={dato:null,estado:null};

this.loadData=function(){
    var defered=$q.defer();
     $http({
          method: 'POST',
          url: 'http://example.com/',
          headers: {

            'Content-Type': 'application/x-www-form-urlencoded'
           },
          data: "grant_type=client_credentials"
          })  
    .success(function(inf,state){
        data.dato=inf;
        data.estado=state;
        defered.resolve(data);               
    })
    .error(function(inf,state){
        data.dato=inf;
        data.estado=state;
        defered.reject(data);  
    });
    return defered.promise;
}

 }]);
还有茉莉花测试:

describe('Test servicios', function () {

var anomlogin, $httpBackend, $q;

beforeEach(module('ServiceModule', function($provide) {

}));

beforeEach(inject(function (_$httpBackend_,_$q_, _anonymous_Login_Services_) {
  $httpBackend = _$httpBackend_;
  anomlogin = _anonymous_Login_Services_;
  $q = _$q_;
}));

it('Token', function () {

   var status2=0;

     var estado= anomlogin.loadData(); 
    console.log(estado);

        expect(anomlogin.loadData()).toBe(status2);

});

});
我不想用httpbackend对http post进行模拟,我想比较对象,其中一个对象是通过服务中的post获得的


非常感谢。

如果不检查承诺的解析值,您的测试将毫无意义。这就是jasmine的
done
参数的作用:

function failTest(error) {
    expect(error).toBeUndefined();
}

it('Token', function (done) {
    var status2=0;

    anomlogin.loadData()
        .then(function (result) {
            expect(result).toBe(status2);
        })
        .catch(failTest)
        .finally(done);
});