小编Dal*_*tin的帖子

没有待处理的请求使用whenGET时刷新,而不是expectGET

使用$ httpBackend测试角度服务时,我得到了一些意想不到的结果.

当我使用httpBackend.expectGET运行测试时,测试按预期工作.但是,如果我使用whenGET运行完全相同的测试,则测试失败,并显示消息"No pending request to flush".

这是受测试的服务:

 .factory('CoverageService', ['$http', function ($http) {
     return{
         GetCoverageReport: function () {
             return $http.get('../../../js-test-reports/coverage/Chrome 43.0.2357%20(Windows%207)/cobertura-coverage.xml');
     },
Run Code Online (Sandbox Code Playgroud)

以下是测试:

'use strict';

describe('coverage-manager.js', function () {
    describe('CoverageService', function () {
        var httpBackend, sut, rootScope;
        beforeEach(module('fot'));
        describe('GetCoverageReport', function () {
            beforeEach(inject(function ($httpBackend, CoverageService, $rootScope) {
                httpBackend = $httpBackend;
                sut = CoverageService;
                rootScope = $rootScope;
            }));
                
            it('should return data', function () {
                var expectedData = { testData: 'some data' };
                var actualData;
                httpBackend.expectGET('../../../js-test-reports/coverage/Chrome 43.0.2357%20(Windows%207)/cobertura-coverage.xml').respond(expectedData);

                sut.GetCoverageReport()
                    .success(function (response) { actualData …
Run Code Online (Sandbox Code Playgroud)

jasmine angularjs httpbackend

5
推荐指数
0
解决办法
647
查看次数

标签 统计

angularjs ×1

httpbackend ×1

jasmine ×1