关于测试库的目的adapter
的任何文档。enzyme
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
configure({ adapter: new Adapter() });
关于测试库的目的adapter
的任何文档。enzyme
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
configure({ adapter: new Adapter() });
关于测试库的目的
adapter
的任何文档。enzyme
最接近的是说“您需要安装酶以及与您正在使用的反应版本(或其他 UI 组件库)相对应的适配器”。
文档大多只是解释如何配置一个adapter
并没有真正谈论它的目的。
酶中的接头是什么
简洁版本
无论您使用的是什么版本,API 都是相同的,但是如何渲染enzyme
以及与渲染的内容交互取决于版本。React
React
React
adapter
抽象出任何基于版本更改的内容,因此React
核心enzyme
代码可以保持不变。
详细版
mount
并且shallow
都从enzyme
. 让我们专注于mount
。
mount
是一个只返回一个新ReactWrapper
的函数。
ReactWrapper
为熟悉的包装对象提供instance
, setState
,find
等。
React
无论您使用哪个版本,所有这些功能的实现都是相同的......
...但是由于React
多年来它本身已经发生了变化,任何基于React
版本而变化的实现细节都被一个适配器抽象出来了。
通过调用来检索适配器getAdapter
,第一次使用它是验证传递给的节点mount
,然后创建renderer
实际呈现节点的。
对于被路由到和内部的enzyme-adapter-react-16.3
调用,您可以看到熟悉的调用,您传递的内容实际上是使用v16 语法呈现的。createRenderer
this.createMountRenderer
createMountRenderer
ReactDOM.render
React
getAdapter
在ReactWrapper.js中搜索显示,到处adapter
都是用于抽象出在使用时根据React
版本更改的功能mount
......
...并getAdapter
在ShallowWrapper.js中搜索显示adapter
用于抽象出React
在使用shallow
.