onEnter/onLeaveでロジックを実行しました。私はsetInterval
をonEnterで使って、clearInterval
を使ってonLeaveでクリアしました。ユニットテストreact-router onEnter/onLeave
上記のユニットテストはどのようにして行うことができますか?以下は
<Route
component={App}
onEnter={onEnterApp}
onLeave={onLeaveApp}
path="/app">
onEnter
とonLeave
小道具があなたの<App>
部品のcomponentWillMount
とcomponentWillUnmount
方法に結び付け、これだけ<App>
をマウントし、アンマウントされていない私のテストケースであるが、それは失敗し、
import React from 'react';
import App from '../components/views/app.jsx';
import {shallow, mount, render} from 'enzyme';
import {expect, assert} from 'chai';
import sinon from 'sinon';
import {mountWithIntl} from '../test_utils/intl-enzyme-test-helper.js';
describe(‘App renders correctly',() => {
it('When mounting set intervals',() => {
const wrapper = mountWithIntl(<App/>);
expect(window.x).to.exist;
expect(window.y).to.exist;
});
it('When unmounting clear intervals',() => {
const wrapper = mountWithIntl(<App/>);
wrapper.unmount();
expect(window.x).to.not.exist;
expect(window.y).to.not.exist;
});
});
「windows」ではなく「global」を試してみましたか? –
ありがとうございます。それは改善だったが問題を解決しなかった。 – nish1013