[英]Enzyme Mount/Shallow once on before hook on Mocha
我有一個組件,我在每個測試用例中都進行了掛載/精簡,因此發現這很多余。 before
掛上鈎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)即可告訴酶找到它們。 酶通過子組件的顯示名稱查找子組件 。
您可以將上面的代碼重構為
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);
});
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.