You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React组件Jest快照缺失HTML内容,测试通过但快照为空

问题原因与解决方法
  • 核心问题:你在断言时传入的是asFragment函数本身,而非调用它返回的片段结果。Jest对函数本身生成快照,所以显示[Function]而非HTML树;同时因为函数确实存在,测试会直接通过。

  • 修复步骤:

    1. 修改测试代码的断言部分,将expect(asFragment).toMatchSnapshot();改为expect(asFragment()).toMatchSnapshot();
    2. 重新运行测试,Jest会生成包含组件HTML结构的正确快照

修改后的完整测试代码:

describe('ProsenttrekkSkattetrekk', () => {
  it('Rendrer korrekt', () => {
    const { asFragment } = renderWithTranslations(
      <ProsenttrekkSkattetrekk
        oppdaterInntektsInfo={jest.fn()}
        oppdaterTypeTrekk={jest.fn()}
        skattetrekk={{ prosent: undefined, type: 'prosenttrekk' }}
        prosenttrekkBelop={10}
      />
    );

    expect(asFragment()).toMatchSnapshot(); // 调用asFragment函数获取片段
  });
});
  • 额外验证:如果修改后仍有异常,可以检查renderWithTranslations是否正确返回组件渲染结果,或者组件是否因传入的props(比如prosent: undefined)导致无内容渲染。但结合你之前测试正常的情况,优先解决函数调用的问题即可。

内容的提问来源于stack exchange,提问作者Palmos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 12:37:09