繁体   English   中英

单元测试时如何测试功能是否相等

[英]How to test functions for equality when unit testing

我有以下代码:

DeviceEventEmitter.addListener(eventName, () => { return 'myHandler' })

我正在测试通过以下测试调用DeviceEventEmitter

DeviceEventEmitter.addListener = jest.fn();
expect(DeviceEventEmitter.addListener.mock.calls[0][1]).toEqual(() => { return 'myHandler' });

但是,测试失败并显示:

expect(received).toEqual(expected)

Expected value to equal:
  [Function anonymous]
Received:
  [Function anonymous]

似乎无法理解功能是否相同。

那么,如何使它检测到何时功能相同?

这将始终返回false,因为您正在创建一个新函数作为toEqual函数的参数:

expect(DeviceEventEmitter.addListener.mock.calls[0][1]).toEqual(() => { return 'myHandler' });

具有相同主体的2个功能仍然不同。 您必须保留对侦听器的引用,然后比较该引用:

var listener = () => { return 'myHandler' }
DeviceEventEmitter.addListener(eventName, listener)

DeviceEventEmitter.addListener = jest.fn();
expect(DeviceEventEmitter.addListener.mock.calls[0][1]).toEqual(listener);

暂无
暂无

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

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