簡體   English   中英

QUnit-如何比較兩個復雜的對象

[英]QUnit - how to compare two complex objects

我正在使用QUnit在相當復雜的JavaScript應用程序中對某些序列化和反序列化邏輯進行單元測試,但是我無法通過測試。

看起來好像他們應該做正確的事情的兩個檢查是deepEqualpropEqual ,但是,這兩個檢查似乎都不能完全滿足我的要求:

如果我使用deepEqual ,並且兩個對象不匹配,則斷言失敗,並且顯示給我一個表示問題的差異。 但是,如果沒有差異,我只會收到一條失敗消息,其中將傳遞給相等性檢查的第一個參數顯示為“ Expected”值,而沒有第二個參數或任何區別的指示。 我認為這可能是因為它們不是同一對象,但我不確定。

如果我使用propEqual我只會收到一條消息,指出RangeError: Maximum call stack size exceeded at String.match (native)並且測試失敗。

是否可以使用QUnit執行這種檢查? 如果是這樣,我在做什么錯?

對於上面遇到的第二個關於propEqual問題, propEqual我造成麻煩的問題是循環引用,其中子對象持有對其父對象的引用,然后該對象將QUnit發送到自旋中。 可以調整objectValues函數,以便在已經處理對象並且僅處理看不見的對象時將其標記為“可見”。 有了這個適當的比較對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM