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