测试库:如何获取具有 Text 子级的父节点

Jas*_*ers 5 testing jestjs react-testing-library

在测试库中,我试图找到一种方法来查找其子级与条件匹配的元素:让我们在测试中呈现的容器中考虑这一点:

    <div class="classA">
        <div class="classB">
            <div class="classC">
                some text
            </div>
        </div>
        <div class="classB">
            <div class="classC">
                more text
            </div>
        </div>
    </div>
Run Code Online (Sandbox Code Playgroud)

我想找到

    <div class="classB">
        <div class="classC">
            some text
        </div>
    </div>
Run Code Online (Sandbox Code Playgroud)

我尝试过: getByText(container, 'some text', {selector: 'classB'})但它返回了

<div class="classC">
    some text
</div>
Run Code Online (Sandbox Code Playgroud)

我缺少什么来找到包含此文本的容器/组件/父级?

Ale*_*lex 5

请参阅下面的代码,可能会有所帮助

queryAllByText((_, element) => 
element.textContent === "some text" && element.className === 'classB')
Run Code Online (Sandbox Code Playgroud)


小智 5

我知道已经晚了,但如果有人想在查询文本时获取父级:

  expect(getByText('Name').parentElement?.style.left).toBe('50px');
Run Code Online (Sandbox Code Playgroud)