首页 > 解决方案 > Angular 单元测试失败:没有 WebSocketAPI 的提供者

问题描述

由于以下错误,我的一些单元测试在我的 Angular 10 应用程序中失败:

Failed: R3InjectorError(DynamicTestModule)[WebSocketAPI -> WebSocketAPI]: NullInjectorError: No provider for WebSocketAPI!

通常这个错误意味着我在我的一个测试文件中忘记了导入,但我不知道这次要准确导入什么来修复错误。我试过这个:

import { WebSocketAPI } from './service/WebSocketService';

但它不起作用,谷歌研究没有返回任何有趣的东西。我对 Angular 不是很熟悉,有人知道如何解决这个错误吗?

标签: angular

解决方案


我只需要将 WebSocketAPI 作为提供程序放在测试文件的 beforeEach 方法中:

beforeEach(async(() => {
    TestBed.configureTestingModule({
        declarations: [
            AppComponent
        ],
        imports: [
            RouterTestingModule,
            HttpClientTestingModule
        ],
        providers: [
            WebSocketAPI
        ]
    }).compileComponents();
}));

推荐阅读