0

我一直在尝试使用酶浅渲染来模拟 onPress。但是由于 react-intl 我无法访问 TouchableOpacity

我已经看到了将 intl 注入到 react 组件中的辅助函数,但这些似乎只适用于 React 而不是 react-native。

it("should handle button presses", () => {
  const onPress = sinon.spy();
  const button = shallow(
    <IntlProvider locale='en'>
      <ButtonApprove
        tintColor={STYLES.COLOR.BRAND_SUCCESS}
        buttonStyle={{}}
        containerStyle={{}}
        handlePress={onPress}
      /> 
    </IntlProvider>
  );
  // console.log(button.instance());
  button.find(TouchableOpacity).simulate('press');
  expect(onPress.calledOnce).toEqual(true);
});

JSdom 会是解决这个问题的方法吗?

4

1 回答 1

0

这种方法帮助我避免使用 IntlProvider 包装我的组件。

当它被包装在提供者组件中时,如何使用 mocha + 酶 + chai 测试反应原生组件

我能够使用 .dive() & .instance() 遍历到所需的组件

希望这可以帮助其他人处理同样的问题。

于 2017-05-30T03:12:33.937 回答