繁体   English   中英

如何用Jest内的另一个功能测试功能?

How to test function with another function inside with Jest?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我只是开始学习测试以进行反应并在这一刻卡住了。

这是我的功能:

private handleCountyItemClick = (
    e: React.FormEvent<HTMLButtonElement>
  ): void => {
    const { countries } = this.props.countriesRed;
    const selectedId: number = parseFloat(e.currentTarget.dataset.value);
    const foundCountry = countries.find(
      (country: Country, i: number) => i === selectedId
    );
    if (foundCountry) {
      this.props.CountyItemClick(foundCountry);
      this.props.clearInput();
      this.setState({
        dropdownOpen: false,
        fullWidthFullHeightElHeight: 54
      });
      this.countriesListItems.current.style.height = "";
      scrollIt(this.props.countriesRootEl.current, 300, "easeOutQuad", () =>
        enableBodyScroll(this.countriesListItems.current)
      );
    }
  };

然后,我写了这个测试,并且得到了错误:

it("should update the count by 1 when invoked by default", () => {
    const wrapper = shallow(component);
    const instance = wrapper.instance();
    instance.handleCountyItemClick({
      currentTarget: { dataset: { value: 1 } }
    });
  });

错误:

TypeError: _this.props.CountyItemClick is not a function

如您所见,在我的函数中,我使用Redux中的另一个函数,此错误是指Redux中的函数。 我不知道下一步该怎么做! 我需要做什么? 如何进行?

1 个回复

似乎您需要模拟道具。

let props;
let wrapper;

beforeEach(() => {
  props = {
    CountyItemClick: jest.fn(),
  };
  wrapper = shallow(<Component {...props} />);
});

it("should update the count by 1 when invoked by default", () => {
  const wrapper = shallow(component);
  const instance = wrapper.instance();
  instance.handleCountyItemClick({
    currentTarget: { dataset: { value: 1 } }
  });

  expect(props.CountyItemClick).toHaveBeenCalled();
});
1 JEST - 如何在另一个函数中测试函数

我正在尝试使用 Jest 进行测试,但只是检查整个方法而不是其中的函数,我已经尝试了很多方法,没有其他任何效果,我该如何从范围内测试“比较”函数的方法? 我是否必须像这样在 store 方法中将比较作为参数传递? “异步存储(请求,资源,比较)”?? session.service.spec ...

2 开玩笑-如何在另一个函数中最好地测试排序函数

我开玩笑地测试以下功能(使用Flowtype): 玩笑的覆盖范围告诉我,由于未测试返回(labelA &lt;labelB),因此我没有完全测试该功能。 我如何有效地测试这条线? 我不确定,因为它是排序功能使用的方法。 ...

2018-06-12 07:42:08 0 298   jestjs
6 如何在 Jest 测试函数中模拟变量?

我正在用 Jest 测试 Express 应用程序,但遇到了一个小问题——该模块使用了在测试执行之前初始化的变量,这是我的app.js文件: 当我运行 Jest 测试时,我的process.env.NODE_ENV等于test ,这就是为什么我不能覆盖第一个if条件,其中isDev为true 。 ...

7 测试内部函数是否被开玩笑

我最近在开玩笑地写测试用例。 我有一个要求,例如应该检查内部函数是否被调用。 谁能帮我这个? 这是index.js的代码 我正在这样编写index.test.js中的代码 我想测试是否调用了onSetActionableState吗? ...

10 开玩笑的测试模拟—在另一个函数中模拟获取

我有一个要测试的有状态组件。 该组件在调用我的其他功能之前作为中间步骤。 Kinda就是这样 loadMystuff本质上给了我一个eKey ,我可以用它来调用fetchSList ,它调用fetch 我想模拟fetch并使其返回字符串数组,但是我没有运气实现这一点。 我 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM