reactjs - 无法在酶测试中设置上下文
问题描述
我正在使用添加到在componentDidMount()
生命周期方法中触发的上下文的方法。
我应该能够通过为 Enzyme 的shallow()
方法提供一个选项来存根上下文,但这不会传递给我的组件。例如:
我的测试:
it('renders without crashing', () => {
const context = { dispatch: jest.fn() };
shallow(<MyComponent />, { context });
});
和我的组件:
import React, { Component } from 'react';
import { Consumer, Context } from '../../context';
class MyComponent extends Component {
static contextType = Context;
componentDidMount() {
const { dispatch } = this.context; // dispatch is `undefined`
dispatch({ type: 'BLAH', payload: 'blah' });
}
etc...
}
this.context
是一个对象,但它没有属性 -dispatch
始终未定义。
解决方案
不幸的是,还不enzyme
支持。createContext
contextType
你可以在这里看到它的进展。
推荐阅读
- python - Python在循环中将数据保存到文件/全局变量
- git - Jenkins groovy - 如何从最新提交中检索标签?
- php - laravel 不在银行做更新
- javascript - burpsuite 入侵者和散列密码
- forms - Xamarin 布局无法获得焦点
- java - Java:芬奇机器人的运动持续时间
- angular - ViewEncaptulation.None 孩子没有从父母 Angular 7 获得样式
- html - 使用自动放置包装 CSS 网格
- r - 如何为桑基图创建数据集?
- angular - angular-google-map 在每个标记下添加文本