AngularErrorInterceptor单元测试不如预期工作
创始人
2024-10-24 17:01:08
0
  1. 首先,确保在测试中正确导入需要测试的模块和服务类。

import { TestBed } from '@angular/core/testing'; import { ErrorInterceptor } from './error.interceptor'; import { HttpClientTestingModule } from '@angular/common/http/testing';

describe('ErrorInterceptor', () => { let errorInterceptor: ErrorInterceptor;

beforeEach(() => {
    TestBed.configureTestingModule({
        imports: [HttpClientTestingModule],
        providers: [ErrorInterceptor]
    });

    errorInterceptor = TestBed.inject(ErrorInterceptor);
});

});

  1. 创建模拟的http响应和错误。

const mockErrorResponse = { status: 404, statusText: 'Not Found' }; const mockError = new Error('Not Found');

  1. 创建测试用例并使用HttpClientTestingModule发送模拟的http请求和响应。

it('should intercept errors', () => { const httpClientSpy = jasmine.createSpyObj('HttpClient', ['get']); httpClientSpy.get.and.returnValue(asyncError(mockErrorResponse));

const next: HttpHandler = {
    handle: req => {
        throw mockError;
    }
};

errorInterceptor.intercept(null, next).subscribe(
    () => fail('expected an error, not a successful result'),
    error => {
        expect(error).toEqual(mockErrorResponse);
    }
);

});

  1. 如果没有使用async和fakeAsync来测试异步代码,则需要使用jasmine-done函数来标记测试的完成。

it('should intercept errors', (done: DoneFn) => { const httpClientSpy = jasmine.createSpyObj('HttpClient', ['get']); httpClientSpy.get.and.returnValue(asyncError(mockErrorResponse));

const next: HttpHandler = {
    handle: req => {
        throw mockError;
    }
};

errorInterceptor.intercept(null, next).subscribe(
    () => fail('expected an error, not a successful result'),
    error => {
        expect(error).toEqual(mockErrorResponse);
        done();
    }
);

});

使用这些步骤能够测试ErrorInterceptor拦截器。

相关内容

热门资讯

透视软件“闲逸游戏修改器”开挂... 【亲,闲逸游戏修改器 这款游戏可以开挂的,确实是有挂的,很多玩家在这款闲逸游戏修改器中打牌都会发现很...
玩家必看科普“闲逸碰胡辅助”开... 玩家必看科普“闲逸碰胡辅助”开挂(透视)辅助软件微扑克教程(有挂教程);打开点击测试直接进入微信(1...
玩家交流“福州十八扑外卦视频”... 玩家交流“福州十八扑外卦视频”开挂(透视)辅助下载软件教程(真的有挂);无需打开直接搜索打开薇:13...
分享一款“微乐小程序自建房插件... 您好:微乐小程序自建房插件怎么安装这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现...
透视美元局“财神十三张安装工具... >>您好:财神十三张安装工具确实是有挂的,很多玩家在这款财神十三张安装工具游戏中打牌都会发现很多用户...
今日公布“来来拼十辅助免费辅助... >>您好:来来拼十辅助免费辅助确实是有挂的,很多玩家在这款来来拼十辅助免费辅助游戏中打牌都会发现很多...
玩家实测“中至南昌辅助工具”开... 玩家实测“中至南昌辅助工具”开挂(透视)辅助安装系统教程(有挂实锤)《详细加薇136704302咨询...
实操分享“哈局十三张元华辅助”... 哈局十三张元华辅助是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我...
玩家必备攻略“朱雀吴江三缺一辅... 较多好评“微乐万能挂官网”开挂(透视)辅助教程 了解更多开挂安装加(136704302)微信号是一款...
技巧知识分享“小程序跑得快的技... 技巧知识分享“小程序跑得快的技巧”开挂(透视)辅助神器AI教程(有挂分析)您好:小程序跑得快的技巧这...