使用玩笑在回调方法中检查道具

时间:2018-09-21 16:09:17

标签: reactjs jestjs enzyme

我开始开玩笑地编写测试用例,这是我的新手。我有一个带有res作为参数的回调函数,并根据条件显示了道具。

myModalCallback = (res) => {
    this.props.myCallBack ? this.props.myCallBack(res) : () => { };
  }

我的测试用例:

const myModalCallback = ({ res }) => (
expect(Filler.props().myCallBack).toBeDefined());

但是我得到(res)/没有得到保障。有什么方法可以测试吗?

1 个答案:

答案 0 :(得分:0)

由于问题中有部分代码,我模拟了myModalCallback和this.props,请看下面的测试用例。测试并运行了所有测试用例,并覆盖了100%的覆盖率。

const myModalCallback = function(res) {
  this.props.myCallBack ? this.props.myCallBack(res) : () => {};
};

describe("myModalCallback", function() {
  it("returns undefined when myCallback is not defined", () => {
    expect(myModalCallback.bind({ props: {} })()).toBeUndefined();
  });
  it("returns undefined when myCallback is not defined", () => {
    const myCallBack = jest.fn();
    myModalCallback.bind({ props: { myCallBack } })(1);
    expect(myCallBack).toHaveBeenCalled();
    expect(myCallBack.mock.calls[0][0]).toBe(1);
  });
});

此测试运行且所有案例均通过的代码沙箱链接。 https://codesandbox.io/s/m5v24789rp