web-dev-qa-db-ja.com

Angular 2単体テスト:カスタムパイプエラーパイプが見つかりませんでした

「myPipe」というカスタムパイプがあります。パイプ 'myPipe'がユニットテストtsでエラーを検出できませんでした。

.spec.tsで何をインポートして宣言するかアドバイスしてください

ここに私の.spec.tsがあります

import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { DebugElement } from '@angular/core';

import { MyComponent } from './main-page-carousel.component';

describe('CarouselComponent', () => {
  let component: MyComponent ;
  let fixture: ComponentFixture<MyComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ MyComponent ],
    })
    .compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(MyComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create', () => {
    expect(component).toBeTruthy();
  });
});

ありがとう!

22
Si Thu

これができるはずです:

  import { MyPipe } from 'here put your custom pipe path';
  TestBed.configureTestingModule({
    declarations: [ MyComponentUnderTesting, MyPipe ]
  })
46
JonesCola

私も同じ問題を抱えていたので、次の「モックパイプ」をspec.tsに追加して修正しました。

import {Pipe, PipeTransform} from '@angular/core';

@Pipe({name: 'myPipe'})
class MockPipe implements PipeTransform {
    transform(value: number): number {
        // blah blah
        return value;
    }
}

次に、MockPipeをTestBed configureTestingModule宣言に追加する必要があります。

TestBed.configureTestingModule({
  declarations: [ MyComponentUnderTesting, MockPipe ]
})
1
maia

あなたは次のようなものを始めるべきです

import { TestBed, async } from '@angular/core/testing';
import { MyPipe } from 'here put your custom pipe path';

describe('Pipe: MyPipe', () => {
  it('create an instance', () => {
    let pipe = new MyPipe();
    expect(pipe).toBeTruthy();
  });
});
0
Elmer Dantas