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拦截器。

相关内容

热门资讯

我来分享!hhpoker可以控... 我来分享!hhpoker可以控制牌吗,德州局透视,辅助教程(有挂透视);大神普及一款德州ai内幕,确...
科技揭秘!约局吧app有挂吗,... 科技揭秘!约局吧app有挂吗,wepoker透视脚本网页,总结教程(有挂技巧);小薇(透视辅助)致您...
一起来讨论!hhpoker是正... 1、一起来讨论!hhpoker是正品吗,大菠萝免费辅助,wpk教程(有挂神器)。2、大菠萝免费辅助透...
推荐十款!aapoker发牌逻... 您好,佛手大菠萝有挂吗这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在...
玩家必看科普!wepoker买... 自定义wepoker买钻石有用吗系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅...
热点讨论!wepoker透视是... 热点讨论!wepoker透视是真的吗,wepoker手机版辅助,教你教程(有挂透视)1、点击下载安装...
我来教大家!wejoker黑侠... 我来教大家!wejoker黑侠辅助器,wepoker透视脚本免费使用视频,必赢方法(有挂透视);致您...
分享实测!菠萝辅助器免费版的特... 分享实测!菠萝辅助器免费版的特点,we-poker辅助软件教程,靠谱教程(有挂透视);原来确实真的有...
一分钟了解!德州透视是真的吗,... 1、一分钟了解!德州透视是真的吗,德普之星辅助工具如何设置,安装教程(有挂透视)2、进入游戏-大厅左...
玩家攻略推荐!约局吧能不能开挂... 玩家攻略推荐!约局吧能不能开挂,约局吧如何查看是否有挂,扑克教程(有挂神器);支持多人共享记分板与复...