我有一个无法运行的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(内置)代码上运行它,我感到很困惑?
答案 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