JEST 我应该 运行 在 src 或 lib 上测试用例吗?
JEST Should I run test cases on src or lib?
我有一个 Jest 测试套件失败 运行 因为它试图测试的组件依赖于 RequireJS 模块。这是我看到的错误:
失败测试/components/MyComponent.test.js
● 测试套件未能 运行
ReferenceError: define is not defined
at Object.<anonymous> (node_modules/private-npm-module/utils.js:1:90)
但是,如果我 运行 我的测试用例放在用 ES6 编写的源文件夹中,它 运行 没问题,因为它没有 requirejs 的 AMD。我很困惑在源代码上 运行 测试用例是正确的做法还是我们应该在 lib(内置)代码上 运行 它?
通常您想要测试源代码,而不是构建代码。
如果您参考 Jest 的 React 教程,它通常建议您导入组件而不是测试构建的捆绑文件。
示例:
import React from 'react';
import {shallow} from 'enzyme';
import CheckboxWithLabel from '../CheckboxWithLabel';
test('CheckboxWithLabel changes the text after click', () => {
// Render a checkbox with label in the document
const checkbox = shallow(<CheckboxWithLabel labelOn="On" labelOff="Off" />);
expect(checkbox.text()).toEqual('Off');
checkbox.find('input').simulate('change');
expect(checkbox.text()).toEqual('On');
});
来源:https://facebook.github.io/jest/docs/en/tutorial-react.html
我有一个 Jest 测试套件失败 运行 因为它试图测试的组件依赖于 RequireJS 模块。这是我看到的错误:
失败测试/components/MyComponent.test.js ● 测试套件未能 运行
ReferenceError: define is not defined
at Object.<anonymous> (node_modules/private-npm-module/utils.js:1:90)
但是,如果我 运行 我的测试用例放在用 ES6 编写的源文件夹中,它 运行 没问题,因为它没有 requirejs 的 AMD。我很困惑在源代码上 运行 测试用例是正确的做法还是我们应该在 lib(内置)代码上 运行 它?
通常您想要测试源代码,而不是构建代码。
如果您参考 Jest 的 React 教程,它通常建议您导入组件而不是测试构建的捆绑文件。
示例:
import React from 'react';
import {shallow} from 'enzyme';
import CheckboxWithLabel from '../CheckboxWithLabel';
test('CheckboxWithLabel changes the text after click', () => {
// Render a checkbox with label in the document
const checkbox = shallow(<CheckboxWithLabel labelOn="On" labelOff="Off" />);
expect(checkbox.text()).toEqual('Off');
checkbox.find('input').simulate('change');
expect(checkbox.text()).toEqual('On');
});
来源:https://facebook.github.io/jest/docs/en/tutorial-react.html