Как мраморный тест ngrx эффект - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть следующий эффект ngrx

@Injectable()
export class StoreEffects {
    constructor(
        private store: Store<State>,
        private actions$: Actions,
    ) { }

@Effect()
userProfile$ = this.actions$
    .ofType('Load')
    .switchMap(action => {
        const payLoad = action['payload'];

        //Run code to load here

        return Observable.of({});  //Just for clarity I have simplified
    });
}

Теперь я хочу выполнить это модульное тестирование и натолкнулся на следующую документацию

https://github.com/ngrx/platform/blob/master/docs/effects/testing.md

Следуя инструкциямДокументация Я разработал следующую спецификацию

beforeEach(() => {
    TestBed.configureTestingModule({
        imports: [
            HttpClientModule,
            StoreModule.forRoot({}) //I'm not sure why you need this, but if I dont supply this it does not work
        ],
        providers: [
            ProfileEffects,
            provideMockActions(() => actions),               
        ],
    });
});

it('should work', async () => {
    actions = hot('-a|', { a: {type: 'Load'}} });
    console.log('testing');
});
});

Теперь из того, что я понимаю, когда я запускаю спецификацию, она должна вызывать мой эффект, но ничего не происходит, и тест просто завершается.Что я здесь не так делаю?

Я использую Jamine.

...