2017-10-11 6 views
1

내 단위 테스트 중 하나에서 @ ngrx/store를 조롱하려고합니다. 나는 다른 사양 파일에 성공적으로 기술을 사용했지만, 이것에서 사용하려고 할 때, 나는 아래 사양 파일에서 관련 코드입니다 No provider for Store! 말을 주사 오류 받고 있어요 :각도 - 갈마 - ngrx - 상점에 대한 공급자가 없음

beforeEach(async(() => { 
    const emptyState = { opportunities: { list: { items: [], page: 1, total: 0 } } }; 
    const mockStore = new MockStore<MockAppState>(emptyState); 

    TestBed.configureTestingModule({ 
    declarations: [ 
     OpportunityListComponent, 
     FilledArrayPipe 
    ], 
    imports: [ 
     NgFilterListModule, 
     FormsModule 
    ], 
    providers: [ 
     { provide: OpportunityApi, useValue: apiStub }, 
     { provide: Store, useValue: mockStore }, 
     { provide: Router, useValue: routerStub } 
    ] 
    }).compileComponents(); 
})); 

beforeEach(() => { 
    store = fixture.debugElement.injector.get('Store'); 
}); 

유일한을 이 컴포넌트와 MockStore 클래스를 성공적으로 사용하는 컴포넌트의 차이점은이 컴포넌트가 AppModule과 별도의 자체 모듈에 지연로드된다는 점입니다. 그러나, 그 모듈에 StoreModule 가져 오기뿐만 아니라 TestBed 가져 오기에서 StoreModule을 포함하여, 모두 아무 소용이 시도했다.

답변

1

fixture.debugElement.injector.get('Store') 전화에서 Store을 인용 한 것이 내 문제로 나타납니다. 따옴표를 제거하면 내 문제가 해결되었습니다.

0

당신은

imports: [ 
    ..., 
StoreModule.forRoot(fromRoot.reducers), 
], 

당신에게

도움이 될 그 추가한다
관련 문제