2016-09-08 7 views
0

私はすべてのテストケースをマウント/浅いコンポーネントがあり、これは冗長であるとわかります。一度取り付けて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); 
    }); 
    }); 
}); 

答えて

2

あなたが別の小道具でスケジュールの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); 
    }); 
    }); 
}); 
+0

として上記のコードをリファクタリングすることができます。ヒントをありがとう! – JohnnyQ

+0

ところで、 'before'フックを取り除くことができれば、それをやってやると' ReactJS'で 'before'の他のユースケースは何ですか? – JohnnyQ

+1

Reactコンポーネントのテスト中に、before、beforeEach、afterEachのようなフックを実際に使用していません。 しかし、これらのフックは、[fetch-mock](https://github.com/wheresrhys/fetch-mock)のような模倣ライブラリを使用する場合に便利です。 [ここに例があります](https://github.com/LaborWorks/bilgi-shuttle-web/blob/master/app/redux/modules/nodes/index.test.ts#L65-L67) – zebrasinpyjamas

関連する問題