当我用酶测试类组件时,我可以做 wrapper.setState({})
来设置状态。当我使用 useState()
钩子测试功能组件时,我现在该怎么做?
例如在我的组件中,我有:
const [mode, setMode] = useState("my value");
我想在我的测试中改变 mode
原文由 Anna 发布,翻译遵循 CC BY-SA 4.0 许可协议
当我用酶测试类组件时,我可以做 wrapper.setState({})
来设置状态。当我使用 useState()
钩子测试功能组件时,我现在该怎么做?
例如在我的组件中,我有:
const [mode, setMode] = useState("my value");
我想在我的测试中改变 mode
原文由 Anna 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答1.2k 阅读
1 回答1.1k 阅读
1 回答987 阅读
1 回答655 阅读
当使用来自钩子的状态时,您的测试必须忽略状态等实现细节才能正确测试它。您仍然可以确保组件将正确的状态传递给其子级。
您可以在 Kent C. Dodds 撰写的这篇 博 文中找到一个很好的示例。
这是一个带有代码示例的摘录。
依赖于状态实现细节的测试 -
不依赖于状态实现细节的测试——