如何正确测试函数内部的调度错误:预期 setSelectedDates 被调用一次但被调用了 0 次 这是onClickRect(data)setSelectedDates(startDate, endDate)HoOperations.spec.js

问题描述

我有一个调用 onClickRect(data) 函数setSelectedDates(startDate,endDate) 函数。我正在尝试为 onClickRect(data) 函数添加单元测试,但出现以下错误

enter image description here

这是onClickRect(data)

onClickRect = (data) => {
 this.props.setSelectedDates(
  moment(data.date).startOf('day'),moment(data.date).endOf('day')
 );
}

setSelectedDates(startDate,endDate) 从道具中传递。它是在 date-selection.js 中定义的,这里是它的定义方式

setSelectedDates(startDate,endDate)

export function setSelectedDates(startDate,endDate) {
    return (dispatch) => {
        dispatch({
            endDate,startDate,type: actions.SET_SELECTED_DATE
        });
    };
}

这是我的 spec 文件,我将 date-selection.js 中的所有内容导入为 dateSelectionCreator

HoOperations.spec.js

import React from 'react';
import { expect } from 'chai';
import { shallow } from 'enzyme';
import sinon from 'sinon';
import moment from 'moment';
import * as dateSelectionCreator from '../../../../../src/creators/date-selection';

describe('HoOperations test suite',() => {
 beforeEach(() => {
  setSelectedDates: () => {}
 });

 it('should test click on a rectangle',() => {
   const wrapper = shallow(<HoursOfOperationChartBodyV2 {...defaultProps}/>);
   const data = {
      date: moment('06/07/2021')
   };
   wrapper.instance().onClickRect(data);
   const stub = sinon.stub(dateSelectionCreator,'setSelectedDates');
   sinon.assert.calledOnce(stub);
 });
});

有人可以澄清我在这里做错了什么吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...