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

时间:2020-01-29 15:02:45

标签: 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>

我想找到

<div class="classB">
    <div class="classC">
        some text
    </div>
</div>

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

<div class="classC">
    some text
</div>

我找不到包含此文本的容器/组件/父对象吗?

2 个答案:

答案 0 :(得分:2)

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

queryAllByText((_, element) => 
element.textContent === "some text" && element.className === 'classB')

答案 1 :(得分:1)

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

  expect(getByText('Name').parentElement?.style.left).toBe('50px');