【发布时间】:2021-05-09 03:45:18
【问题描述】:
我有一个这样定义的样式组件:
export const StyledButton = styled.TouchableOpacity<IButtonProps>
height: 46px;
width: 100%;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
height: 46px;
border-radius: 8px;
background: ${EAppColors.BLACK};
opacity: ${props => (props.disabled ? 0.6 : 1)};
;
interface IButtonProps {
readonly children: React.ReactNode;
readonly onPress: () => any;
readonly style?: StyleProp<ViewStyle>;
readonly testID?: string;
readonly disabled?: boolean;
}
const Button: React.FC<IButtonProps> = ({
children,
style,
onPress,
disabled = false,
}) => {
return (
<StyledButton
testID={'button.simple'}
onPress={onPress}
style={style}
disabled={disabled}>
{children}
</StyledButton>
);
};
我想使用 react-native-testing-library 来访问禁用的道具。 这是我的测试:
const { getByTestId } = render(
<Button disabled={false} onPress={onPressMock}>
<Text>Title</Text>
</Button>,
);
但是当我登录我的测试套件时,我只有这个:
console.log(getByTestId('button.simple').props);
console.log 在我的终端中的结果:
{
accessible: true,
style: {
height: 46,
width: '100%',
display: 'flex',
flexDirection: 'row',
justifyContent: 'center',
alignItems: 'center',
borderRadius: 8,
backgroundColor: '#000000',
opacity: 1
},
testID: 'button.simple'
如何访问传递的道具?
【问题讨论】:
-
你到底想测试什么?
-
@aquinq。我正在尝试测试我的组件是否包含在其道具中:“已禁用”
标签: javascript react-native jestjs styled-components react-testing-library