Javascript 在功能组件中测试功能
我已经创建了一个卡组件,并为此编写了测试用例,但在查看测试覆盖率数字时,我发现该组件的分支覆盖率为50%。测试用例中缺少的部分是onPress函数中其他部分的测试 问题1。如何测试此缺失部分并增加覆盖率 问题2。如何单独测试卡组件的onPress功能Javascript 在功能组件中测试功能,javascript,reactjs,react-native,jestjs,react-test-renderer,Javascript,Reactjs,React Native,Jestjs,React Test Renderer,我已经创建了一个卡组件,并为此编写了测试用例,但在查看测试覆盖率数字时,我发现该组件的分支覆盖率为50%。测试用例中缺少的部分是onPress函数中其他部分的测试 问题1。如何测试此缺失部分并增加覆盖率 问题2。如何单独测试卡组件的onPress功能 const卡=(道具)=>{ const onPress=()=>{ 如果(props.onPress)props.onPress(); }; 返回( ); }; 导出默认卡; 您有两种情况: 定义了props.onPress,因此到达if下的代码
const卡=(道具)=>{
const onPress=()=>{
如果(props.onPress)props.onPress();
};
返回(
);
};
导出默认卡;
您有两种情况:
export const onPress = (props) => () => {
if (props.onPress) {
props.onPress()
}
}
const Card = (props) => {
return (<TouchableWithoutFeedback onPress={onPress(props)}>
<View style={[Style.body, { width: props.width, height: props.height }]}>
<ImageBackground source={{ uri: props.imageUrl }} style={{ width: '100%', height: '100%' }} />
</View>
</TouchableWithoutFeedback>);
};
export default Card;
export const onPress=(道具)=>()=>{
if(道具onPress){
props.onPress()
}
}
康斯特卡=(道具)=>{
返回(
);
};
导出默认卡;
现在已导出onPress功能,可以根据需要进行测试。有两种情况:
export const onPress = (props) => () => {
if (props.onPress) {
props.onPress()
}
}
const Card = (props) => {
return (<TouchableWithoutFeedback onPress={onPress(props)}>
<View style={[Style.body, { width: props.width, height: props.height }]}>
<ImageBackground source={{ uri: props.imageUrl }} style={{ width: '100%', height: '100%' }} />
</View>
</TouchableWithoutFeedback>);
};
export default Card;
export const onPress=(道具)=>()=>{
if(道具onPress){
props.onPress()
}
}
康斯特卡=(道具)=>{
返回(
);
};
导出默认卡;
现在,您已经导出了onPress函数,可以根据需要进行测试。编写一个测试,其中
props.onPress
是falsy。如果你想单元测试onPress
将它移动到顶层,并使用composition将dep添加到其中。我没有按你的方式。你能给我一个简单的答案或链接吗?写一个测试,props.onPress
是falsy。如果你想单元测试onPress
将它移动到顶层,并使用composition将dep添加到其中。我没有按你的方式。你能给我一个简单的答案或链接吗?案例1我已经测试过了。但是如何测试案例2呢?如果我在onPress中没有通过任何测试,那么我该如何测试呢?正如我所说的,只需操纵道具来定义onPress。如果某些事情在需要的时候没有发生,那么断言也是有价值的。1)你没有通过道具。按下2)你模拟点击touchable而没有反馈3)如果某件事情因为未捕获而崩溃,你的测试失败exception@CFLS我同意你的脱钩方法。但是我不确定这是否是我测试过的编写测试用例的最佳实践。但是如何测试案例2呢?如果我在onPress中没有通过任何测试,那么我该如何测试呢?正如我所说的,只需操纵道具来定义onPress。如果某些事情在需要的时候没有发生,那么断言也是有价值的。1)你没有通过道具。按下2)你模拟点击touchable而没有反馈3)如果某件事情因为未捕获而崩溃,你的测试失败exception@CFLS我同意你的脱钩方法。但我不确定这是否是编写测试用例的最佳实践