我如何测试反应功能组件中的状态?

时间:2021-03-17 11:21:43

标签: reactjs jestjs enzyme

我正在使用 jest 和酶来测试我的组件。如果我有以下类组件

chmod 755 resign-ios-app

然后为此编写测试,我将使用:

./resign-ios-app 'olderIpaFileName.ipa' 'newProvisioningProfileFileName.mobileprovision' 'Apple Distribution: TeamName (teamID)'

但是如果我的组件正常运行,那么我会收到错误 - import React, { Component } from "react"; export class Test extends Component { state = { isLoading: false, }; onClick = () => { this.setState({ isLoading: true }); }; render() { return ( <div> <button onClick={this.onClick}>Click button</button> </div> ); } } export default Test;

当我运行测试时。

如何测试我的功能组件状态?

1 个答案:

答案 0 :(得分:0)

shallow 包装器不支持为功能组件提供状态的钩子。您可以使用 Enzyme 的 mount 包装器,也可以改用 React Testing Library,这对于现代 React 来说比 Enzyme 更好。

请注意,mount 可以呈现有状态的功能组件,但不能访问状态。这些将失败:

mount(<Test/>).setState();
mount(<Test/>).state();
相关问题