1

我的反应组件<script>使用 nextJS 呈现标签Head。当尝试使用 testing-libary 的getByTestId方法查询元素时,我收到以下消息:

TestingLibraryElementError: Unable to find an element by: [data-testid="leadoo-experiment"]
Ignored nodes: comments, <script />, <style />

有没有办法包含script在输出中,或者我应该使用不同的策略来验证我的脚本是否被注入?提前致谢

零件

import Head from 'next/head';

const FancyScript = ({src}) => {
  if (src) {
   return (
     <Head>
      <script
        data-testid="keen-to-test"
        type="text/javascript"
        async
        src={src}
      </script>
     </Head>
   )
  }
  return null;
}

测试

import { render } from '@testing-library/react';
import FancyScript from '/fancy-location';

it('return some fancy', () => {
    const { getByTestId } = render(<FancyScript src="real_src_here" />);
    expect(getByTestId('keen-to-test')).toHaveAttribute('src', 'real_src_here');
  });
4

0 回答 0