我在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无法读取null属性
我已经阅读了功能组件,在React 16+中没有实例。有人会帮助建议一种为功能组件中的方法编写单元测试用例的方法。
答案 0 :(得分:1)
我只想提醒您,您不能/不能“自己”测试功能组件的功能,您只能测试它们的实现。
因此,正如@EstusFlask 指出的那样,您不能创建 FC 的实例,然后在测试用例中调用它的函数;但是你可以在你的 FC 中使用这个函数(你应该,这是创建函数的重点),然后在你的测试用例中 - 测试这个函数执行的输出/结果。
答案 1 :(得分:0)
print
函数在模块作用域中定义。与任何其他范围值一样,不能在范围之外访问它。
为了便于访问,应将其导出:
export function print(){ console.log('hello'); }
在使用的相同模块中声明时,无法对其进行嘲笑。 print
不是方法,功能组件没有可以包含方法的实例。除非以instance().print
公开,否则不能以useImperativeHandle
的身份访问。