在React功能组件中,使用jest和酶测试内部功能。

问题描述 投票:0回答:1

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

import React from 'react';
function print(){  console.log('hello');  }

function Welcome(props){     return <h1>{props.name}</h1>; }

export default Welcome; 

在jest和enzyme中。test (method print , ()=> {const container = shallow(<Welcome />).instance().print() }

实例:TypeError Cannot read property of null(无法读取null属性)。

我读到功能组件在React 16+中没有实例。谁能帮助建议一种方法来编写单元测试案例的方法在功能组件中的方法。

reactjs unit-testing jestjs enzyme react-functional-component
1个回答
0
投票

print 函数是在模块范围内定义的。与其他任何范围内的值一样,它不能在范围外被访问。

为了能被访问,它应该被导出。

export function print(){  console.log('hello');  }

当它被声明在同一个模块中时,不能被嘲弄。print 不是一个方法,功能组件没有可以拥有方法的实例。它不能被访问为 instance().print除非它被暴露在 useImperativeHandle.

© www.soinside.com 2019 - 2024. All rights reserved.