2017-12-20 30 views
2

以下の角度成分があります。私のアプリケーションでコンパイルして正常に動作します。しかし、Jestテストにモジュールを組み込むと、エラーが発生します。私はこれがタイスクリプト設定、角度、冗談、またはその組み合わせの問題かどうかはわかりません。Jest単体テストにおける角度円周依存性

コンポーネント:

@Component({ 
    selector: 'child-component', 
    template: '<div>Child here.</div>' 
}) 
export class ChildComponent { 
    constructor(@Inject(forwardRef(() => ParentComponent)) private 
parentComponent: ParentComponent) { } 
} 

@Component({ 
    selector: 'parent-component', 
    template: '<div> 
    <child-component></child-component> 
    <child-component></child-component> 
    </div>' 
}) 
export class ParentComponent{ 
    @ViewChildren(ChildComponent) _children: QueryList<ChildComponent>; 
} 

const EXPORTED_DECLARATIONS = [ 
    ChildComponent, 
    ParentComponent 
]; 

@NgModule({ 
    exports: [EXPORTED_DECLARATIONS], 
    declarations: [EXPORTED_DECLARATIONS] 
}) 
export class TestingModule { } 

あなたは循環依存関係が見ることができるように。ただし、@Inject(forwardRef(() => ParentComponent))で修正する必要がありますが、これは機能しません。

スペック:

import { ComponentFixture, TestBed } from '@angular/core/testing'; 
import { TestingModule } from './test'; 
import { Component, forwardRef } from '@angular/core'; 

describe('TestComponent',() => { 

    let component: TestTestComponent; 
    let fixture: ComponentFixture<TestComponent>; 

    beforeEach(() => { 
    TestBed.configureTestingModule({ 
     declarations: [ TestComponent ], 
     imports: [ 
     TestingModule 
     ] 
    }); 

    fixture = TestBed.createComponent(TestComponent); 
    component = fixture.componentInstance; 
    }); 

    it('default',() => { 
    expect(fixture).toMatchSnapshot(); 
    }); 

}); 

@Component({ 
    selector: 'test-test-1234', 
    template: `<parent-component></parent-component>` 
}) 
class TestComponent { } 

そして、私は私のユニットテストを実行したときに、私は次のエラーを取得します。

ReferenceError: ParentComponent is not defined

私はジャスミン/カルマと同じことを行う場合、私はこのエラーを取得しないことを追加したいと思います。

答えて

0

これらの2つのコンポーネントを別々のファイルに分けても、問題は解決されました。

関連する問題