Jest.js 如何在react测试期间访问root之外的元素?

cotxawn7  于 5个月前  发布在  Jest
关注(0)|答案(1)|浏览(74)

所以我有一个这样的index.html文件,在根div之外有一个span。

// index.html

<div id="root" class="root-container">
    <div class="splash-holder">
        <div class="triangle-holder">
            <div class="triangle four"></div>
            <div class="triangle five"></div>
            <div class="triangle six"></div>
        </div>
    </div>
</div>
<span class="hidden-tag" id="hidden-span"></span>

字符串
我的Index.js文件看起来像这样,你可以看到主应用程序正在root-container中呈现。

// index.js

const MainApp = () => (
    <Provider store={store}>
        <Foo />
    </Provider>
);

ReactDOM.render(<MainApp/>, document.querySelector('.root-container'));


我的Foo组件文件如下所示。

// Foo.js

const Foo = () => {
    const ele = document.getElementById('hidden-span');
    ele.innerHTML = 'dsaas';
}


虽然这在实际的应用程序中工作正常,但当我尝试使用react测试库渲染组件时。

// Foo.test.js

import { render } from '@testing-library/react';
import Foo from ./components;

render(<Foo />);


我得到了无法找到null的innerHTML的错误。我该如何解决这个问题?

57hvy0tb

57hvy0tb1#

标题提示问题

我只能通过getByTestId查询来访问root之外的元素。
https://testing-library.com/docs/queries/bytestid/

相关问题