我的测试设置了一个http请求,但是我没有执行$httpBackend.flush()。下面是测试结果:
describe("Unit: Testing Services", function() {
beforeEach(angular.mock.module('EmsWeb.Services'));
describe("Unit: DalService", function () {
var $httpBackend, dalService, appModel;
beforeEach(inject(function ($q, _$httpBackend_, AppModel, DalService) {
dalService = DalService;
appModel = AppModel;
$httpBackend = _$httpBackend_;
$httpBackend.when('POST', '../api/ModuleApi/GetModules').respond({ userId: 'userX', 'A-Token': 'xxx' });
appModel.context.company = { code: 'LPL' };
}));
describe("canceling request should fail", function () {
it('checks request should be canceled ', function () {
// $httpBackend.expectPOST('../api/ModuleApi/GetModules');
var returnedData;
var callBackFn = function (data) {
returnedData = data;
};
dalService.getModules('senderIdentifier', appModel.context, callBackFn, callBackFn);
});
});
afterEach(function () {
$httpBackend.verifyNoOutstandingRequest();
});
});我预计$httpBackend.verifyNoOutstandingRequest();会抛出一个错误,因此没有调用$httpBackend.flush()。
我也尝试添加$httpBackend.expectPOST('../api/ModuleApi/GetModules');,但没有什么不同。
我遗漏了什么?
发布于 2013-10-24 01:26:25
除非发送$http请求,否则$httpBackend.verifyNoOutstandingRequest()不会引发任何关于“未刷新的请求”的错误。如果你分享了DalService,以及getModules在该服务中的作用,事情会变得更加清晰。
https://stackoverflow.com/questions/18144084
复制相似问题