簡體   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