web-dev-qa-db-fra.com

Angular 2 Unit Test: Erreur de tuyau personnalisé

J'ai un tuyau personnalisé appelé "myPipe". Je reçois Le tuyau 'myPipe' n'a pas pu être trouvé d'erreur dans mes tests unitaires.

Demande conseil quoi importer et déclarer dans mon .spec.ts

voici mes .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();
  });
});

Merci!

16
Si Thu

Vous devriez pouvoir faire ceci:

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

J'ai eu le même problème et je l'ai corrigé en ajoutant le "faux tube" à mes spécifications:

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

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

Ensuite, vous devez ajouter MockPipe aux déclarations configureTestingModule de TestBed: 

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

vous devriez commencer quelque chose comme

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