Angular 2 단위 검정: 사용자 지정 파이프 오류 파이프를 찾을 수 없습니다.
저는 'myPipe'라는 맞춤형 파이프를 가지고 있습니다.다음과 같은 정보:
'myPipe' 파이프를 찾을 수 없습니다. 오류
내 유닛 테스트에서.내 .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();
});
});
감사합니다!
이 작업을 수행할 수 있어야 합니다.
import { MyPipe } from 'here put your custom pipe path';
TestBed.configureTestingModule({
declarations: [ MyComponentUnderTesting, MyPipe ]
})
저도 같은 문제가 있었고, 다음 "모크 파이프"를 제 스펙에 추가하여 수정했습니다.
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 ]
})
저도 거의 같은 파이프 문제가 있었습니다. 템플릿 구문 분석 오류의 경우 다음 두 단계를 수행해야 합니다.
다음과 같이 시작할 때 필요한 파이프를 가져옵니다.
import {{ your_pipe_name }} from '../your/pipe/location'
;선언에 추가합니다.
TestBed.configureTestingModule({ declarations: [ your_pipe ] });
해피 코딩!
파이프에 별칭을 지정한 것처럼 보이지만 아무도 이를 기준으로 응답하지 않습니다.예를 들어, 파이프 이름이 지정된 경우myCustomPipe
그러나 파이프의 클래스 이름과 다릅니다.
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'myCustomPipe',
pure: false
})
export class MyPipe implements PipeTransform {
// ....
}
그렇다면 당신의spec.ts
다음과 같이 파이프를 가져올 수 있습니다. 그렇지 않으면 찾을 수 없습니다.
import { MyPipe as myCustomPipe } from 'path/to/pipe';
그리고 당신의 안에서beforeEach()
별칭을 둘 다 참조해야 합니다.declaration
그리고 aprovider
:
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ ... ],
declarations: [ myCustomPipe, etc],
providers: [ myCustomPipe, etc ]
}).compilecomponents();
// etc
});
당신은 다음과 같은 것을 시작해야 합니다.
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();
});
});
언급URL : https://stackoverflow.com/questions/41543374/angular-2-unit-test-custom-pipe-error-the-pipe-could-not-be-found
'programing' 카테고리의 다른 글
Node.js가 Blobs를 생성할 수 없습니까? (0) | 2023.07.25 |
---|---|
MariaDB: 그룹화 세트/롤업으로 정렬하려면 어떻게 해야 합니까? (0) | 2023.07.25 |
ColumnStore를 사용하는 MariaDB는 많은 하위 프로세스를 생성합니다. (0) | 2023.07.25 |
크롬의 jquery ajax 문제 (0) | 2023.07.25 |
기기를 흔들었을 때 앱을 새로 고치는 방법은? (0) | 2023.07.25 |