Я пытаюсь написать модульные тесты вместе с Angular, Jest и Spectator. Прямо сейчас я борюсь с издевательским магазином NgRx. Я получаю сообщение об ошибке «Нет поставщика для MockStore» при попытке получить экземпляр NgRx, предоставленный MockStore
из экземпляра Spectator.
Я прочитал документацию по NgRx, касающуюся макетов и юнит-тестов, и я могу издеваться над хранилищем NgRx без использования Spectator, читая документацию. Я пытался поискать в Google, но не могу найти примеры насмешливого хранения NgRx вместе со Spectator, и я оставил сообщение в NgRx / store Gitter, чтобы посмотреть, сможет ли кто-нибудь там помочь мне.
Вот как выглядит мой код:
let component: MyComponent;
let spectator: Spectator<MyComponent>;
let mockStore: MockStore<selectors.AppState>;
let mockUsernameSelector: MemoizedSelector<AppState, string>;
const createComponent = createComponentFactory({
component: MyComponent,
componentProviders: [
provideMockStore(),
],
shallow: true,
detectChanges: false,
});
beforeEach(() => {
spectator = createComponent();
component = spectator.component;
mockStore = spectator.inject<MockStore<selectors.AppState>>(MockStore);
mockUsernameSelector = mockStore.overrideSelector(selectors.selectUserName, 'Bob');
});
Но, как я уже сказал, как только я пытаюсь получить экземпляр MockStore
от Spectator через spectator.inject
(также пытался spectator.get
), я получаю ошибку "Нет поставщика для MockStore". Я также пытался указать MockStore
следующим образом:
const createComponent = createComponentFactory({
component: MyComponent,
componentProviders: [
mockProvider(MockStore, provideMockStore()),
],
shallow: true,
detectChanges: false,
});
Но тогда я получаю сообщение об ошибке «Нет поставщика для Магазина», очевидно.
Возможно, кто-то здесь может Помоги мне? Заранее спасибо!