Ввод нестандартной трубы для модульных испытаний - PullRequest
0 голосов
/ 24 апреля 2020

Я расширил 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(); 
    });
})

1 Ответ

1 голос
/ 30 апреля 2020

Вы пытались удалить

TestBed.configureTestingModule({
  declarations:[MyDecimalPipe],
  providers:[MyDecimalPipe]
});

Возможно, я ошибаюсь, но я думаю, что вам это не нужно, так как вы тестируете MyDecimalPipe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...