我有一个可重用的日期输入功能组件。承载此视图的功能组件具有作为道具的变体。
export default function DateInput({
testID,
variant = 'default',
}: Props): React.MixedElement {
return (
<View testID={testID}>
// other elements here for text box etc.....
</View>
);
此dateInput托管在另一个功能组件BirthdateStep中
return (
<View>
<DateInput
testID='birthdate'
variant='default'
/>
</View>
我正在尝试使用测试库/react native来测试组件。
const {queryByTestId} = render(
<BirthdateStep />
);
const birthdateField = queryByTestId('birthdate');
// This statement fails as variant is undefined
expect(birthdateField.props.variant).toBe('default');
// This works
expect(birthdateField.props.children[0]._owner.memoizedProps.variant).toBe('default');
// This also works
expect(birthdateField.props.children[0]._owner.testID).toBe(birthdateField.props.testID);
我不知道为什么道具不反映testID以外的任何属性?而且是在_owner的备忘录道具中。我通过调试找到了_所有者。
有什么建议吗?