在 React 测试库中检查 class

Checking for a class in React testing library

我有一个名为 button-group 的 class,它是这样呈现的:

<body>
        <div>
          <span
            class="button-group"
          />
        </div>
      </body>

现在,我如何 check/query 获取 button-group class 的存在?我写了:

const { container } = render( <ButtonGroup /> );
expect( container.firstChild.toHaveClass( 'button-group' ) );

但是由于某种原因这个测试失败了,谢谢。

正确的测试方法之一如下:

<div>
    <span data-testid="span-id"
      class="button-group"
    />
  </div>

测试用例如下:

render( <ButtonGroup /> );
expect(screen.getByTestId('span-id')).toHaveClass('button-group') ;

我们不应该直接引用节点进行测试。也看看这个文档 https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/no-node-access.md