重用在测试和代码的其他部分中反应的PropTypes?

时间:2016-11-18 01:10:38

标签: reactjs react-proptypes

是否有一种简单/直接的方法可以在测试和其他代码中以编程方式重用React.PropTypes内置的验证?

例如,如果我有:

ButtonX.propTypes = {
  className: React.PropTypes.string
};

如果我使用数字类名加载该按钮,则react会在控制台中发出警告。

我想在代码中重用所有逻辑,并执行以下操作:

validateButtonUsingReactPropTypes({ className: 'my-class' })

是否有一种已知的干净方式来访问这些内部人员?

1 个答案:

答案 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

显然,您可以将其纳入一些优秀的测试工具中,但这只是原始调用。

相关问题