$scope.$apply 在 Mocha Sinon 中抛出 'Unexpected request: No more request expected'
$scope.$apply is throwing 'Unexpected request: No more request expected' in Mocha Sinon
我有服务 A 调用另一个服务 B,然后 B 注入了 $http 调用 API 网络服务。
现在,当我尝试使用 Mocha Sinon 存根服务 B 时,出现以下错误
Unexpected request: GET app/contract/forecast/il8n/en.json No more
request expected
请注意,我没有在我的代码中的任何地方使用 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' 和 return 模拟响应并检查根据模拟输入正确填充的 vm(视图模型)对象。
我有以下配置
Gulp, Karma, phantom js, Mocha, Sinon etc..
感谢帮助!
正如我在上面评论的那样,通过关注 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');
}));
我有服务 A 调用另一个服务 B,然后 B 注入了 $http 调用 API 网络服务。
现在,当我尝试使用 Mocha Sinon 存根服务 B 时,出现以下错误
Unexpected request: GET app/contract/forecast/il8n/en.json No more request expected
请注意,我没有在我的代码中的任何地方使用 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' 和 return 模拟响应并检查根据模拟输入正确填充的 vm(视图模型)对象。
我有以下配置
Gulp, Karma, phantom js, Mocha, Sinon etc..
感谢帮助!
正如我在上面评论的那样,通过关注 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');
}));