【发布时间】:2018-09-13 19:21:40
【问题描述】:
在 jest 文档中,我发现了这个测试反应组件的简单示例:
// Link.react.test.js
import React from 'react';
import Link from '../Link.react';
import renderer from 'react-test-renderer';
test('Link changes the class when hovered', () => {
const component = renderer.create(
<Link page="http://www.facebook.com">Facebook</Link>,
);
let tree = component.toJSON();
expect(tree).toMatchSnapshot();
// manually trigger the callback
tree.props.onMouseEnter();
// re-rendering
tree = component.toJSON();
expect(tree).toMatchSnapshot();
// manually trigger the callback
tree.props.onMouseLeave();
// re-rendering
tree = component.toJSON();
expect(tree).toMatchSnapshot();
});
为什么我们必须导入React 和react-test-renderer,而不必导入其他特定于测试的东西,例如test、expect?
有人可以解释一下,这是如何在幕后工作的以及运行测试时实际发生的情况吗?
【问题讨论】:
-
renderer.create直接用在例子里吧? -
哦,你是对的!我更新了问题。谢谢。
-
这里已经回答了为什么需要导入 React:stackoverflow.com/questions/38206646/… 和 stackoverflow.com/questions/37993680/…
标签: javascript reactjs jestjs