2017-06-12 4 views
5

Więc moja realizacja Redux-sklepu może nie być najlepszym i moja wiedza jest żartem minimum niezrównana ..żartem mock Redux-sklep getstate() stosowany w module z Redux-makiety magazynu

mam trzy pliki, które składa się z ...

  1. moduł
  2. React Komponent
  3. The (normalny), sklep, eksportowane jako domyślne

Mój plik testowy wygląda następująco:

// file.test.js 


jest.mock('store',() => jest.fn()) 

// external 
import React from 'react' 
import configureStore from 'redux-mock-store' 

// internal 
import Component from 'components/Component' 
import store from 'store' 

describe('Test My Component',() => { 
    const mockStore = configureStore() 

    it ('should equal true',() => { 
     const initialState = { active: true } 

     store.mockImplementation(() => mockStore(initialState)) 

     expect(store.getState().active).toBe(true) 
    }) 
}); 

Powodem jestem szyderczy sklep dlatego wewnątrz <Component /> Używam moduł która sama importuje samego store i posiada kilka funkcji, które wykorzystują store.getState(). ..

Więc co to zwraca się

TypeError: _store2.default.getState is not a function

zrobiłem to obejść przez wyśmianie połączenie modułu (szer hich jest używany przez <Component />), ale czuję, że powinienem móc to zrobić, ponieważ mam różne początkowe stany, które chcę wypróbować i nie wszystkie są zależne od modułu.

To jest mój pierwszy post na SO, daj mi znać, jeśli powinienem coś wyjaśnić!

Odpowiedz

0

Nie importuj sklepu. Chcemy wyśmiać sklep:

const store = mockStore(initialState);