ReactTestUtils Simulate.click()返回undefined

时间:2016-05-04 20:48:03

标签: javascript reactjs karma-runner sinon-chai

我正在尝试运行一个测试,用于检查我的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(),但我只是收到一个关于它不是一个对象的错误。

我不确定如何通过这个问题。

0 个答案:

没有答案