摩卡在我的测试中没有调用我的函数

时间:2018-02-06 09:55:23

标签: javascript reactjs testing mocha

我有这个测试:

it('calls addTheItem when clicked', () => {
  wrapper.find('.addBtn').simulate('click')
  expect(addTheItemStub.called).to.equal(true)
});

这是我的代码

<button
  className="addBtn"
  onClick={() => {this.addTheItem(inputValue); this.clearInput()}}
  >
  Add Item
</button>

这个代码适用于我玩它的时候。只是测试没有通过。

也在我的beforeEach中:

    const addTheItemStub = sinon.spy();
    const addItemStub = sinon.spy();
    const usingEnterKeyStub = sinon.spy();
    beforeEach(() => {
      wrapper = shallow(
        <Container
          addTheItem={addTheItemStub}
          addItem={addItemStub}
          items={itemsStub}
          usingEnterKey={usingEnterKeyStub}
        />
      )
    });

我正在抄袭它。我期待调用存根。

但它期望它不会被叫或假。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我在按钮的onClick处理程序中看到,您将方法称为this.addTheItemthis.clearInput。但是您将这些方法的存根作为道具传递给父Container元素。

除非您使用道具中的方法,即this.props.addTheItemthis.props.clearInput,否则不会调用存根。