2
我正在使用酶,sinon,並期望單元測試我的反應組分。如何sinon窺探一個React組件的構造函數 - 單元測試?
import React from 'react';
import expect from 'expect.js';
import { shallow } from 'enzyme';
import ExampleComponent from './../../../src/js/components/example-component';
describe('Test <ExampleComponent />', function() {
beforeEach(function() {
this._sandbox = sinon.sandbox.create();
this.constructorSpy = this._sandbox.spy(ExampleComponent.prototype, 'constructor');
});
afterEach(function() {
this._sandbox.restore();
this.constructorSpy = null;
});
it('Should set the state with the correct data [constructor]', function() {
const wrapper = shallow(<ExampleComponent />);
console.log(' - callCount: ', this.constructorSpy.callCount);
expect(this.constructorSpy.calledOnce).to.be(true);
expect(Immutable.is(wrapper.state('shownData'), Immutable.Map())).to.be(true);
});
我在組件構造函數中設置了一些邏輯,它根據我傳入的道具來設置狀態。然而,這個測試不斷告訴我,構造函數調用計數是0,並且它不被調用。
窺探組件構造函數的正確方法是什麼?我究竟做錯了什麼?
我正在使用沙盒,因爲我還想添加其他功能以添加到沙箱中以供將來窺探。