Mobx属性未传递给组件

时间:2017-06-05 22:51:24

标签: reactjs unit-testing jestjs enzyme mobx

我的组件检查值是否已加载,如果没有获取数据..

@withRouter @inject('myStore') @observer
class Component extends Component {    
  componentDidMount() {
    const { myStore, match } = this.props;
    const { selected, fetch } = myStore;

    console.log('DidMount with', selected, match.id);

    if (!selected || selected.id !== match.id) {
      fetch();
    }
  }
}

我测试......

test('call fetch if id is different from match', () => {
  const props = { myStore: new MyStore(), match: { id: 321 } }
  const spy = jest.spyOn(props.myStore, 'fetch');
  props.myStore.selected = { id: 123 };
  shallow(
    <ClassRoomRobots.wrappedComponent {...props} />,
  );

  expect(spy).toBeCalledWith(321);

  spy.mockReset(); spy.mockRestore();
});

这是一个简单的商店..

class MyStore {
    @observable selected = undefined;
    @action fetch() {
        // Fetch data...
    }
}

问题

在我的测试中,组件使用

进行渲染
  

DidMount UNDEFINED 321

为什么undefined?我在这里想念的是什么?

0 个答案:

没有答案