我正在尝试运行一个测试,该测试旨在检查我的 React 组件的 Add 按钮是否被单击,以便间谍可以捕捉到正在调用适当的方法并通过测试。
但是,我遇到了 ReactTestUtils.Simulate.click() 错误,它返回 undefined 并且我的间谍永远不会看到该方法被命中。
我正在使用 react、sinon-chai 和 karma。
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() ,但我只是收到关于它不是对象的错误。
我不确定还能做些什么来通过这个问题。