我有一个名为MyClass
的React Native类,使用此render
方法:
render() {
return (
<TouchableHighlight onPress={this.showAllData}>
//some other code
</TouchableHighlight>
);
}
我正试图用这样的酶测试它:
const wrapper = shallow(
<MyClass/>
);
wrapper.find(<TouchableHighlight/>).simulate('press');
expect(wrapper.find(<Text> {Constants.MY_CONSTANT} </Text>)).to.have.length(0);
但是,我收到此错误:
Method “simulate” is only meant to be run on a single node. 0 found instead.
那么为什么找不到<TouchableHighlight/>
?
如何让<TouchableHighlight/>
对测试可见?
答案 0 :(得分:4)
而不是:
wrapper.find(<TouchableHighlight/>).simulate('press');
尝试:
wrapper.find(TouchableHighlight).simulate('press');
如果不起作用,也请尝试:
wrapper.find('TouchableHighlight').simulate('press');
第一个更改应该有效,但在某些情况下(特别是如果这是一个简化的示例),它会有点混乱,你会想要用字符串名称而不是类来查找它。