我该如何模拟控制器内部的服务并兑现承诺?

尽力而为

我有这个简单的控制器:

“使用严格”;

angular.module('feedsSnapshotsApp').controller('feedEditCtrl', function ($scope, lakesService) {

        $scope.getDataForLakes= function(){
            lakesService.query().then(function(result){
                $scope.model.lakes = result.lakes;
            });
        };
})
;

我要执行以下操作:

我想测试该功能是否正常工作:我想在测试单元中模拟该服务,并为“ lakesService.query”返回一个模拟的承诺,该如何做?我该如何实现这种目的?

j
var scope;
beforeEach(module('feedsSanpshotApp')); 
beforeEach(inject(function($rootScope, $controller, $q) {
    scope = $rootScope.$new();
    scope.model = {
        lakes: undefined
    };
    var lakesServiceMock = {
        query: function () {
            var deferred = $q.defer();
            deferred.resolve('modelLakes'); // put the result you want to be resolved here
            return deferred.promise;
        };
    };
    var mock = {
        $scope: scope,
        lakesService: lakesServiceMock
    };
    $controller('feedEditCtrl', mock);
}));

it('test', function (done) {
    scope.getDataForLakes();
    expect(scope.model.lakes).toBe('modelLakes');
    done();
});

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

AngularJS,Mocha,Karma。测试控制器,模拟服务承诺

我们如何模拟我们的服务来测试控制器?

当在其他地方使用该理论时,如何模拟控制器服务的理论服务

如何在控制器内部模拟公共方法

如何模拟服务和测试后的控制器方法

如何在Mockito中为控制器模拟服务

如何模拟控制器

如何从服务读取控制器内部$ http请求的数据?

在控制器内模拟服务类

我该如何委派查看控制器到堆栈中的多个视图控制器?

我如何使用Laravel在控制器内部获取数据

动态注入服务(从控制器内部)

在我问之前如何不兑现承诺

如何集成测试控制器,该控制器内部的方法从另一个站点获取令牌

如何将服务中的承诺返还给控制器?

AngularJS如何将服务的承诺结果返回给控制器

茉莉花测试:如何在AngularJS的控制器内部模拟方法

承诺不在我的 nodejs 控制器中等待对方

我如何为我的注销控制器进行模拟测试

控制器内部的控制台服务响应

如何使用 JUnit5 在 Micronaut 的控制器测试中模拟服务类?

如何在控制器建议中模拟服务以进行单元测试

如何在 Spring Cloud 合同的生产者上模拟控制器中的服务

Symfony功能测试-如何使用请求(提交)模拟控制器注入的服务

我应该如何从服务器端控制器和AngularJS控制器传递数据?

如何兑现承诺?

如何兑现承诺?

如何多次兑现承诺?

如何使函数兑现承诺