我正在尝试运行一个测试,用于检查我的React组件的Add按钮是否被点击,以便间谍可以捕获正在调用的相应方法并通过测试。
但是我遇到了ReactTestUtils.Simulate.click()的错误,它在其中返回undefined,我的间谍从未看到该方法被命中。
我正在使用反应,sinon-chai和业力。
import React from 'react';
import ReactTestUtils from 'react-addons-test-utils';
import { expect } from 'chai';
import AddItem from '../AddItem';
describe('<AddItem />', () => {
let component;
beforeEach(function() {
buildAddItem();
});
function buildAddItem(displayError = false) {
let props = {
displayError: displayError,
text: 'test'
};
component = ReactTestUtils.renderIntoDocument(<AddItem {...props}/>);
return component;
}
it('submits a new item to the database', () => {
let callback = sinon.spy(component, 'handleSubmit');
let input = ReactTestUtils.findRenderedDOMComponentWithTag(component, 'input');
let btn = ReactTestUtils.findRenderedDOMComponentWithTag(component, 'button');
input.value = "test";
component.setState({ text: 'test ' });
ReactTestUtils.Simulate.change(input);
ReactTestUtils.Simulate.click(btn);
expect(component.handleSubmit.CalledOnce).to.be.true;
});
});
我尝试了很多东西,包括在btn上做一个.findDOMNode()和.getDOMNode(),但我只是收到一个关于它不是一个对象的错误。
我不确定如何通过这个问题。