从React类导出默认类和函数

时间:2018-11-06 23:44:04

标签: javascript reactjs ecmascript-6 jestjs

我可以从react类导出类和函数。 下面是我的课程,我正在尝试导出onKeyHandler进行单元测试。我尝试只是在onKeyHandler之前添加export,但是我的lint不喜欢那样。我将如何导出一个默认值和另一个导出功能以进行测试。

import React, { Component } from 'react';

class MyComponent extends Component {

  onKeyHandler = ({ target, keyCode }) => {

  };

  render() {
    return (
      <div>
        sdfsdfds
      </div>
    );
  }
}

export default MyComponent;

1 个答案:

答案 0 :(得分:0)

要导出函数,该函数必须在类之外。但是您可以测试而无需导出。

尝试使用sinon

// import
import 'sinon' from sinon.

// in your test case
let onKeySpy = sinon.spy(MyComponent, "onKeyHandler");

// logic goes here
expect(onKeySpy.called).toBeTrue();

我还没有尝试过,但是应该可以。您也可以用类似的方式监视jest.spyOn()

如果需要对方法进行存根,则可以使用prototype

let onKeyStub = sinon.stub(MyComponent.prototype, "onKeyHandler");