我是新来作出反应 ,看着玩笑作为一个潜在的单元测试解决方案。 然而,我发现它令人惊讶的很难找出如何简单断言在渲染属性值ReactComponent
。 我不知道这是因为通常的做法是不渲染和看到的实际值,或者如果我只是没有找到一个很好的例子呢。
所以,这里是我的工作:
Label组件:
var Label = React.createClass({
render: function() {
if (this.props.targetName) {
return (
<label htmlFor="{this.props.targetName}">{this.props.content}</label>
);
}
return (
<label>{this.props.content}</label>
);
}
});
module.exports = Label;
这是一个测试:
describe('Label sub component', function() {
var Label = require('../../../views/label');
it('has the correct target element name', function() {
var labelDocument = TestUtils.renderIntoDocument(
<Label targetName="foobar" content="Upload Files:"/>
);
var label = TestUtils.findRenderedDOMComponentWithTag(labelDocument, 'label');
expect(label.getDOMNode().getAttribute('for')).toEqual('foobar'); // actually returns {this.props.targetName}
});
});
所以,你可以看到,我不能确定的期望在这里断言。 我想期待值foobar
是正确的元素呈现。 然后,我可以确保该props
结合是正确的。 label
是一个ReactComponent
,我看到许多属性和方法。 什么是一看就知道将呈现的最佳方式和测试的实际价值?