对使用$ resource的服务进行单元测试

MBielski

我试图将单元测试包装在现有服务周围,并且不知所措,无法解释测试结果中显示的数据并导致我的测试失败。一,玩家:

服务方式:

function createAddressType(newAddressType) {
var defObj = $q.defer();
addressTypesResource = $resource(addressTypesAPI, {}, {query: { method: 'GET'}, create: { method: 'POST'}, update: { method: 'PUT'}, remove: { method: 'DELETE'}});

var newType = addressTypesResource.create({'addresstypes': [
        {'addresstype': newAddressType}
]});
newType.$promise.then(function(data){
    defObj.resolve(data);
});

return defObj.promise;
}

单元测试:

it('should try to create the passed address type on the server', function(){
    var newType = addressTypeService.blankModel('123', '456');
    newType.type_name._value_ = 'Fred';
    httpBackend.expect('POST','/v1/rest/addresstype', {addresstypes:[{addresstype:newType}]})
    .respond({addresstypes:[{addresstype:{
    'type_name': {'_value_': 'Fred'},
    'origin_application': {'_value_': '123'},
    'subsidiary_sid': {'_value_': '456'},
    'sid':{'_value_':'1234567890'}
}}]});
    var returnValue = {};
    var createType = addressTypeService.create(newType);
    createType.then(function(data){
        returnValue = data;
    });
    httpBackend.flush();

    expect(returnValue).toEqual({addresstypes:[{addresstype:{
        'type_name': {'_value_': 'Fred'},
    'origin_application': {'_value_': '123'},
    'subsidiary_sid': {'_value_': '456'},
    'sid':{'_value_':'1234567890'}
}}]});
});

测试结果:

Expected { addresstypes : [ { addresstype : { type_name : { _value_ : 'Fred' }, origin_application : { _value_ : '123' }, subsidiary_sid : { _value_ : '456' }, sid : { _value_ : '1234567890' } } } ], $promise : { then : Function, catch : Function, finally : Function }, $resolved : true } 
to equal { addresstypes : [ { addresstype : { type_name : { _value_ : 'Fred' }, origin_application : { _value_ : '123' }, subsidiary_sid : { _value_ : '456' }, sid : { _value_ : '1234567890' } } } ] }.

谁能告诉我为什么那$promise...部分仍然挂着?我最初没有使用此服务$q,只是返回了$resource调用,但是后来我们开始内部解析事物,然后再传回它们(我们最终将不得不在主要承诺之前和之后添加代码),并且在生产中运行良好,但是单元测试给了我满头白发。

亚当·马修斯

有望在响应中包含该承诺。因此,您需要检查returnvalue.addresstypes。

expect(returnValue.addresstypes.toString()).toEqual({addresstypes:[{addresstype:{
            'type_name': {'_value_': 'Fred'},
            'origin_application': {'_value_': '123'},
            'subsidiary_sid': {'_value_': '456'},
            'sid':{'_value_':'1234567890'}
        }}]}.toString());

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用ReSharper进行AngularJS单元测试

来自分类Dev

使用ReSharper进行AngularJS单元测试

来自分类Dev

使用StaticLoggerBinder对类进行单元测试

来自分类Dev

使用RouteAttribute对ApiController进行单元测试

来自分类Dev

使用NSURLSession进行单元测试

来自分类Dev

使用PostSharp进行正确的单元测试

来自分类Dev

使用sinon框架进行单元测试

来自分类Dev

使用Google测试进行单元测试

来自分类Dev

使用Jasmine进行单元测试$ modal

来自分类Dev

使用实体框架进行单元测试的单元测试

来自分类Dev

如何对使用服务的助手进行单元测试?

来自分类Dev

使用Automake进行单元测试

来自分类Dev

使用MockServletContext进行单元测试

来自分类Dev

对使用RTOS的项目进行单元测试

来自分类Dev

使用Microsoft EntityFramework进行单元测试

来自分类Dev

使用Shim for ZipFile进行单元测试

来自分类Dev

Django使用ForeignKey进行单元测试

来自分类Dev

使用Firebase进行单元测试

来自分类Dev

使用Jasmine / Karma对服务进行单元测试不会注入服务的副本

来自分类Dev

使用Azure DocumentDB进行单元测试

来自分类Dev

使用Mockito进行单元测试LazyLogging

来自分类Dev

使用boost :: multiprecision进行单元测试

来自分类Dev

使用单元测试模拟服务类

来自分类Dev

使用Mockito对POJO进行单元测试

来自分类Dev

当IValidatableObject Validate使用服务进行验证时,如何对其进行单元测试?

来自分类Dev

使用ReSharper进行AngularJS单元测试

来自分类Dev

使用$ resource对控制器进行单元测试时,AngularJS“没有等待刷新的请求”

来自分类Dev

使用Jasmine / Karma对服务进行单元测试不会注入服务的副本

来自分类Dev

使用 DarkSkyApi 调用进行 Angular 2 服务单元测试

Related 相关文章

热门标签

归档