我有一个名为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/>
对测试可见? 最佳答案
代替:
wrapper.find(<TouchableHighlight/>).simulate('press');
尝试:
wrapper.find(TouchableHighlight).simulate('press');
如果那不起作用,请尝试:
wrapper.find('TouchableHighlight').simulate('press');
第一次更改应该起作用,但是在某些情况下(特别是如果这是一个简化的示例),它会有些混乱,您将希望使用字符串名称而不是类来查找它。