是否有一种简单/直接的方法可以在测试和其他代码中以编程方式重用React.PropTypes内置的验证?
例如,如果我有:
ButtonX.propTypes = {
className: React.PropTypes.string
};
如果我使用数字类名加载该按钮,则react会在控制台中发出警告。
我想在代码中重用所有逻辑,并执行以下操作:
validateButtonUsingReactPropTypes({ className: 'my-class' })
是否有一种已知的干净方式来访问这些内部人员?
答案 0 :(得分:1)
查看文档中的Test Utilities文章......它认为它会提供一些示例,说明如何访问验证程序进行测试。
使用renderIntoDocument的示例,基于React GitHub存储库中ReactJSXElementValidator-test.js
的代码。
// arrange
RequiredPropComponent = class extends React.Component {
render() {
return <span>{this.props.prop}</span>;
}
};
RequiredPropComponent.displayName = 'RequiredPropComponent';
RequiredPropComponent.propTypes = {prop: React.PropTypes.string.isRequired};
// act
ReactTestUtils.renderIntoDocument(<RequiredPropComponent prop={null} />);
// assert
let testPassed = console.error.calls.count() == 0
显然,您可以将其纳入一些优秀的测试工具中,但这只是原始调用。