首页 > 解决方案 > 在 React 功能组件中,使用 jest 和酶测试内部功能

问题描述

我在 React 中使用功能组件,我需要为功能组件中的方法编写单元测试用例。

import React from 'react';
function print(){
  console.log('hello');
}
    
function Welcome(props){
  return <h1>{props.name}</h1>;
}
    
export default Welcome; 

开玩笑和酶:

test (method print , ()=> {
  const container =  shallow(<Welcome />).instance().print()
}

instance : TypeError Cannot read property of null

我读过功能组件在 React 16+ 中没有实例。有人会帮助建议一种为功能组件中的方法编写单元测试用例的方法吗?

标签: reactjsunit-testingjestjsenzymereact-functional-component

解决方案


我只想提醒您,您不能/不能“自己”测试功能组件的功能,您只能测试它们的实现。

因此,正如@EstusFlask 指出的那样,您不能创建FC 的实例然后在测试用例中调用它的函数;但是你可以在你的 FC 中使用这个函数(你应该,这就是创建函数的重点),然后在你的测试用例中 - 测试这个函数执行的输出/结果。


推荐阅读