Я расширил DecimalPipe
и использовал способ, и для модульного теста это не удалось. Я также зарегистрировал канал с TestBed
.
`NullInjectorError: R3InjectorError(DynamicTestModule)[MyDecimalPipe -> MyDecimalPipe]:
NullInjectorError: No provider for MyDecimalPipe!
MyDecimalPipe.ts
import { DecimalPipe, registerLocaleData} from '@angular/common';
import { Pipe, PipeTransform } from '@angular/core';
import localeFr from '@angular/common/locales/fr';
@Pipe({
name: 'myDecimal'
})
export class MyDecimalPipe extends DecimalPipe implements PipeTransform
{
transform(value: any, args?: any) : any {
registerLocaleData(localeFr);
return super.transform(value, args, 'fr');
}
}
MyDecimalPipe.spe c .ts
import { MyDecimalPipe } from './my-decimal.pipe';
import { TestBed } from '@angular/core/testing';
import localFr from '@angular/common/locales/fr';
import { registerLocaleData, DecimalPipe } from '@angular/common'
describe('MyDecimalPipe', () => {
let pipe: MyDecimalPipe;
let value: number;
let defaultLocale: string = 'en-US';
TestBed.configureTestingModule({
declarations:[MyDecimalPipe],
providers:[MyDecimalPipe]
});
beforeEach(() => {
value = 0;
registerLocaleData(localFr);
pipe = new MyDecimalPipe(defaultLocale);
});
it('create an instance', () => {
//arrange
//act
//assert
expect(pipe).toBeTruthy();
});
})