我有服务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,摩卡,诗乃等。
非常感谢帮助!
答案 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');
}));