使用酶查询组件的内部状态



我正在使用酶3.9.0。

我刚刚将一个类组件重构为一个使用useState钩子的组件。

我之前通过像这样提取组件来测试组件的内部状态:

const shortcutActions = wrapper.state().shortcuts;    
expect(shortcutActions).toHaveLength(1); 

使用useState时是否可以查询内部状态?

钩子是全新的,酶正在更新以支持它们。

您可以在此处跟踪一般进度:问题 #2011。

此处特别跟踪对useState的支持:问题 #2008。

因此,当前对useState的支持级别为:

  • mount支持get和渲染元素更新set
  • shallow支持get,但尚不支持使用set更新渲染元素

至于直接查询内部状态,我不确定是否有必要。

从本节:

钩子在类中不起作用。但是您可以使用它们而不是编写类。

。所以钩子适用于React现在更喜欢称之为"function components".

使用useState定义的任何状态都只存在于函数体内,函数外部的任何内容都无法访问。

修改该状态的唯一方法是与函数返回的呈现输出进行交互,因此测试函数组件应仅涉及与呈现的组件交互并验证它是否按预期重新呈现。

最新更新