angular - 通过 Jest 和 Spectator 全局导入模块

标签 angular dependency-injection jestjs angular-spectator spectator

在我的 Angular 项目中,我删除了 Karma,以便将 Jest.js 与 Spectator 结合使用。它运行良好,但现在,由于与翻译相关的模块有点冗长,我正在尝试全局导入它。我在documentation中读到Spectator 的这可以在 test.js 中完成,但除非我弄错了,否则该文件是由 Karma 使用的,而不是由 Jest.js 使用的。所以我想知道是否可以用Jest/Spectator进行全局注入(inject),谢谢!

最佳答案

对于使用 Jest 的用户,应在 setupJest.ts 中设置全局注入(inject)

示例:

import 'jest-preset-angular/setup-jest';

import { defineGlobalsInjections } from '@ngneat/spectator';
import { HttpClient, HttpClientModule } from '@angular/common/http';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';

export function HttpLoaderFactory(http: HttpClient) {
    return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}

defineGlobalsInjections({
    imports: [
        HttpClientModule,
        TranslateModule.forRoot({
            loader: {
                provide: TranslateLoader,
                useFactory: HttpLoaderFactory,
                deps: [HttpClient]
            }
        })
    ]
});

关于angular - 通过 Jest 和 Spectator 全局导入模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69296659/

相关文章:

c# - 控制台应用程序后台服务中 httpclientfactory 的 DI

testing - NestJS 如何在单元测试中创建新的 Mongoose 模型?

reactjs - React 测试库和 Jest 中的模拟路由器

node.js - Jest 检查设置是对还是错

css - 无法使用 webpack 加载 css 字体(svg、eot、woff、woff2 和 ttf)

design-patterns - 害怕使用依赖注入(inject)框架

angular - 我如何跟踪 ionic 2 中 app.component.ts 中的每个错误

c# - 如何在后台任务中使用具有依赖性的作用域服务

angular - Angular 2 中的 ngStyle 和 ngClass

angular - ngModelChange Angular 未检测到文本区域更改