如何在 angular 中对 registerLocaleData 进行单元测试

How to Unit test registerLocaleData in angular

我正在尝试使用 angular 8 和 Karma 测试日期字符串转换的实际输出。

在我的 app.module 中,我使用语法: registerLocaleData(localeNl, 'nl');

在我的模板中我使用 {{date | date: 'MMMM yyyy'}}

当我对管道转换进行单元测试时:

element = fixture.nativeElement;
content = element.querySelector('.content');
expect(content.innerText).toContain('mei 2020')

我收到 Karma 错误,innerText 是 "May 2020" 而不是 "mei 2020",但在实际的 angular 应用程序中它正确地呈现文本 "mei 2020"。那么如何让 Karma 环境使用与应用程序相同的语言环境?

尝试提供:

import { LOCALE_ID } from '@angular/core';
import { registerLocaleData } from '@angular/common';
...
registerLocaleData(localeNL, 'nl');
...
TestBed.configureTestingModule({
   providers: [{ provide: LOCALE_ID, useValue: 'nl' }], // you know the useValue here
});

至于货币是 . 而不是 ,,我不知道为什么会这样。