$ scope。$ apply在Mocha Sinon

时间:2016-02-16 06:59:20

标签: angularjs unit-testing mocha sinon karma-mocha

我有服务A,它调用另一个服务B,而B又注册了$ http,调用了API网络服务。

现在,当我尝试使用Mocha Sinon存根服务B时,​​我收到以下错误

  

意外请求:GET app / contract / forecast / il8n / en.json不再   请求预期

注意我的代码中没有使用httpBackend。

代码如下

var somePromise = B.getData(url,data);
somepromise.then(success, failed);

测试代码

it('Testing A.loadCustomerInformation', function() {
       var deferred = $q.defer();
       var promise = deferred.promise;
       sinon.stub(B,'getData').returns(promise);
       deferred.resolve({data : customerInformation});
       A.loadCustomerInformation(vm);
       rootScope.$apply();
       assert(B.getData.called);
       assert(A.someotherMtd1.called);
       assert(A.someotherMtd2.called);
});

基本上我想存根服务B函数'getData'并返回模拟响应并检查vm(视图模型)对象是否正确填充模拟输入。

我有以下配置

  

Gulp,Karma,幻影js,摩卡,诗乃等。

非常感谢帮助!

1 个答案:

答案 0 :(得分:0)

正如我上面评论的那样,通过关注Unit Testing with Translate 我从@Chasmo comments得到的东西设置得很好..以下是我添加的代码

beforeEach(module('app', function ($provide, $translateProvider) { $provide.factory('testLoader', function ($q) { return function () { var deferred = $q.defer(); deferred.resolve({}); return deferred.promise; }; }); $translateProvider.useLoader('testLoader'); }));