JEST我应该在src还是lib上运行测试用例?

时间:2018-02-05 05:00:14

标签: reactjs unit-testing webpack requirejs jestjs

我有一个无法运行的Jest测试套件,因为它尝试测试的组件取决于RequireJS模块。这是我看到的错误:

FAIL 测试 /components/MyComponent.test.js   ●测试套件无法运行

ReferenceError: define is not defined

  at Object.<anonymous> (node_modules/private-npm-module/utils.js:1:90)

但是,如果我在ES6中编写的源文件夹上运行我的测试用例,它运行正常,因为它没有AMD的requirejs。如果在源代码上运行测试用例是正确的做法,还是应该在lib(内置)代码上运行它,我感到很困惑?

1 个答案:

答案 0 :(得分:1)

通常,您希望测试源代码,而不是构建代码。

如果您参考Jest的React教程,它通常建议您导入组件而不是测试构建的bundle文件。

示例:

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