javascript - 如何使用开玩笑酶查找推断类型
问题描述
我有一个包裹在 a 中的组件,Provider
我使用 Enzyme mount 来测试它。我想在使用时推断类型,wrapper.find
以便我可以访问组件状态并拥有所有类型。这是我正在运行的代码示例:
const wrapper = mount<Provider>(
<Provider mocks={mocks}>
<MyComponent
foo={bar}
/>
</Provider>
);
const MyComponentInstance = wrapper.find("MyComponent").instance();
expect(MyComponentInstance.state.isBar).toBe(true);
这MyComponentInstance
是我想获得类型推断的地方,所以我以后可以调用MyComponentInstance.state.isBar
.
MyComponent
State
类型是这样定义的:
type State = {
isBar: boolean
}
export class MyComponent extends Component {
public state : State = {
isBar: false
}
}
解决方案
根据文档,您还可以通过构造函数找到组件。因此,您可能想尝试以下方法:
const wrapper = mount<Provider>(
<Provider mocks={mocks}>
<MyComponent
foo={bar}
/>
</Provider>
);
const MyComponentInstance = wrapper.find(MyComponent).instance();
expect(MyComponentInstance.state.isBar).toBe(true);
TypeScript 现在应该能够推断类型,但这是否有效取决于您使用的类型定义。
推荐阅读
- javascript - 保证D3中的滴答数
- node.js - NodeJS/Lambda/Lex/Axios - 如何对插槽进行同步调用
- python - Django 重定向到错误的 URL
- ruby-on-rails - 在一个 FK 上找到具有一定数量匹配项的记录,has-many :通过关联
- c++ - 在 Freeswitch 中使用 AWS C++ SDK 加载模块时出现未定义符号错误
- sql-server - SQL Server -- 错误 = [Microsoft] [SQL Server Native Client 10.0][SQL Server] 对象名称无效
- python - 如何理解 Selenium 中的 webdriver 和 get()?
- ios - 设置一个等于视图框架的变量,当视图的框架改变时,值不会改变
- matlab - 生成函数评估次数的命令
- angular - 无法在延迟加载模块中加载同级路由组件