提问人:Maksat Madeniyetov 提问时间:9/15/2023 更新时间:9/15/2023 访问量:233
Angular、Transloco、Jest 单元测试警告
Angular, Transloco, Jest Unit Testing Warning
问:
我有一个 Angular 项目。
inputValidatorsParamMap: Map<string, ValidationParams> = new Map([
[
'noMoreThan100Symbols',
{
regex: /^.{0,100}$/,
message: this.translocoService.translate('MAIN_LAYOUT.MAX_CHARACTER_COUNT', {
count: 100,
}),
} as ValidationParams,
],
]);
正如你在这里看到的,我动态地设置了计数。
代码工作正常。我得到了预期的输出。
但是当我运行时,有一条警告消息npx jest
警告消息: 缺少“enUS.MAIN_LAYOUT”的翻译。MAX_CHARACTER_COUNT'
message: this.translocoService.translate('MAIN_LAYOUT.MAX_CHARACTER_COUNT', {
我不使用 enUS,我的浏览器语言也不是 en-US 但我不认为这是由于spec.ts。 我有两种语言“en”和“ru” 我的spec.ts看起来像这样:
import { HttpClientModule } from '@angular/common/http';
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
import { TranslocoService } from '@ngneat/transloco';
import { TranslocoRootModule } from '../../../transloco-root.module';
import { MyModalComponent } from './my-modal.component';
describe('MyModalComponent', () => {
let component: MyModalComponent;
let fixture: ComponentFixture<MyModalComponent>;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [HttpClientModule, TranslocoRootModule],
declarations: [MyModalComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
providers: [NgbActiveModal, TranslocoService],
});
fixture = TestBed.createComponent(MyModalComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
如何修复此警告消息?
答:
1赞
Joep Kockelkorn
9/15/2023
#1
由于默认设置默认为 。您正在导入带有默认值的,这些默认值不适用于单元测试。有一个用于单元测试的专用模块,它同步加载翻译。missingHandler.logMissingKey
true
TranslocoRootModule
TranslocoTestingModule
最好是遵循文档中的单元测试指南。
评论