我有一套茉莉花测试,作为我的角cli项目的一部分。我的说法之一是:
expect(dispatchSpy).toHaveBeenCalledWith({
  type: 'SET_RANGE', payload: { value: 'Weekly', start: moment('2017-04-24'), end: moment() }
});但是,我得到以下错误。
预期间谍调度将被对象调用({ type:'SET_RANGE',有效载荷: Object({ value:‘were’,start: Mon 2017年4月24日00:00:00 GMT+0100,end: Sat Apr 2017年4月29日00:00:00 GMT+0100 }) ),但实际调用是对象({ type:'SET_RANGE',有效载荷: Object({ value:‘were’,start: Apr24 2017 00:00:00 GMT+0100,end: Sat 4月29日2017 :00:00 GMT+0100 }) })
显然,它们显示的是相同的,但是我在其他地方遇到了这个问题,在那里,momentJS对象的某些属性不匹配。所以我通常会用:
expect(moment('2017-01-01').format()).toEqual(moment('2017-01-01').format())但是我不能在使用format()时使用).toHaveBeenCalledWith(位
有什么建议吗?
发布于 2017-05-13 21:23:42
这里的问题是,您正在比较两个不同的指针,而不是两个不同的值。
在这种情况下,我通常做的是在expect之前创建对象.
let date = moment('2017-01-01'); expect(date).toEqual(date);
如果您能够控制最终将与toHaveBeenCalledWith()一起使用的对象,那么您可以修改代码,以便比较指针。
否则,您可能必须降低级别,获取使用calls.argsFor(索引)传递的参数,并像通常一样将其与格式()进行比较。
https://stackoverflow.com/questions/43957965
复制相似问题