我有一个组件,我在每个测试用例中都进行了挂载/精简,因此发现这很多余。将它一次安装在before
挂钩上是个好主意吗?还是在以后会遇到一些问题,特别是如果要在组件上设置状态或道具时?
例如:
import React from 'react';
import {mount,shallow} from 'enzyme';
import {expect} from 'chai';
import ScheduleApp from '../src/components/schedule-app.jsx';
import ScheduleForm from '../src/components/schedule-form.jsx';
import ScheduleTable from '../src/components/schedule-result-table.jsx';
describe('<ScheduleApp/>', function() {
describe('Initial Mount', function() {
let wrapper;
before(function() {
wrapper = mount(<ScheduleApp />);
});
it('contains 1 <ScheduleForm/> component', function() {
expect(wrapper.find(ScheduleForm)).to.have.length(1);
});
it('contains 1 <ScheduleTable/> component', function() {
expect(wrapper.find(ScheduleTable)).to.have.length(1);
});
});
});
最佳答案
如果您不打算使用其他道具测试Schedule App,则无需为每种情况都安装它。
您也不需要导入子组件(ScheduleForm和ScheduleTable)即可告诉酶找到它们。 Enzyme finds child components by their display name。
您可以将上面的代码重构为
import React from 'react';
import { mount } from 'enzyme';
import { expect } from 'chai';
import ScheduleApp from '../src/components/schedule-app.jsx';
describe('<ScheduleApp/>', function() {
describe('Initial Mount', function() {
const wrapper = mount(<ScheduleApp />);
it('contains 1 <ScheduleForm /> component', function() {
expect(wrapper.find('ScheduleForm')).to.have.length(1);
});
it('contains 1 <ScheduleTable /> component', function() {
expect(wrapper.find('ScheduleTable')).to.have.length(1);
});
});
});
关于javascript - enzyme 固定/浅一次卡在 Mocha 上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39391235/