3

MobX inject デコレータに関する私の理解では、Enzyme を使用すると、単体テストでストアを簡単に初期化し、マウントしているコンポーネントに小道具として渡すことができるはずです。[src: https://semaphoreci.com/community/tutorials/how-to-test-react-and-mobx-with-jestを開き、統合テスト セクションまでスクロールします。エラー。これは、複数のストアを注入している場合に特に問題になる傾向があります。

だから私のコンポーネントでは:

export default inject('errorStore', 'someOtherStore', 'andTheThirdStore')(observer(MyComponent));

私のテストは次のようになります。

import errorStore from './stores/errorStore';
import someOtherStore from './stores/someOtherStore';
import andTheThirdStore from './stores/andTheThirdStore';
import Component from './components/Component';

describe('My Component', () => {
  someOtherStore.initializeWithData('./examples','TEST-123-45678-90', 'USERID');
  andTheThirdStore.initialize();
  const storeProp = { errorStore, someOtherStore, andTheThirdStore };

  beforeEach(() => {
      const wrapper = mount(<Component {...storeProp} />
  }

  it ('does all the things', () => {...});

ここで他の種類のプロバイダーが必要ですか、それとも明らかな何かが欠けているだけですか?

4

2 に答える 2

2

私が見る限り、あなたの設定は正しいです。再現可能なセットアップはありますか?この号wrappedComponentの例も参照して、元のコンポーネントを直接マウントすることもできます。

于 2016-12-05T18:38:06.830 に答える