2016-11-18 25 views
0

有没有一种简单/直接的方式重新使用React.PropTypes内置到React.PropTypes编程测试和其他代码?在测试和代码的其他部分重用react的PropTypes?

例如,如果我有:

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

如果我加载按钮具有一数值的类名,反应将在控制台发出警告。

我想重新使用代码的所有逻辑,以及这样做:

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

有越来越存取权限的内部的一个已知的干净呢?

+0

只是提醒''propTypes'没有在生产中使用,所以在测试生产时不要依赖它们。 –

回答

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 

可以很明显的将这一进一些很好的测试工具,但这只是原始的电话。