gpt4 book ai didi

reactjs - 当react test-utils引用ReactComponent树时,它期望什么?

转载 作者:行者123 更新时间:2023-12-03 13:29:53 25 4
gpt4 key购买 nike

我正在尝试为一些通过 React 组件渲染的 d3 元素编写测试,我希望能够挑选出页面上的一些 svg 元素并检查它们的宽度以查看它们是否正常运行正如预期的那样。

我不完全确定react test-utils文档在说ReactComponent树时期望什么。

array scryRenderedDOMComponentsWithClass(ReactComponent tree, string className)

我正在通过以下方式将我的组件渲染到文档中:

  var component = TestUtils.renderIntoDocument(
<ProgressCircle percentage={75} />
);

我可以通过执行以下操作成功检查 css className:

  it('should render an element with the class "progress-circle"', function() {
var circleContainer = TestUtils.findRenderedDOMComponentWithClass(component, 'progress-circle');
expect(circleContainer).toBeDefined();
});

但我不明白我需要为其中一些需要 ReactComponent 树的 find/scry 方法提供什么。

http://facebook.github.io/react/docs/test-utils.html

编辑:

为了更清楚地说明,该组件的渲染 DOM 如下所示:

<div class="progress-circle">
<svg>
<g>
</g>
</svg>
</div>

...我正在尝试找到该元素。

最佳答案

据我了解,TestUtils.renderIntoDocument()返回一个ReactComponent树。然后您可以从该树中提取各个组件来测试它们。

例如,这个测试对我来说通过了。

it('demonstrates the ReactComponent tree', function() {
var React = require('react/addons');
var TestUtils = React.addons.TestUtils;
var MyComponent = require('../MyComponent.jsx');

var renderedTree = TestUtils.renderIntoDocument(<MyComponent />);
var renderedMyComponent = TestUtils.findRenderedDOMComponentWithClass(renderedTree, 'my-component')

expect(TestUtils.isDOMComponent(renderedMyComponent)).toBe(true);
});

因此,如果您只是渲染单个组件,它将是 renderedTree 的根。但您仍然必须在 renderedTree 中找到渲染的 MyComponent,然后才能检查它的断言。

关于reactjs - 当react test-utils引用ReactComponent树时,它期望什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28094336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com