該賞金過期5天。此問題的答案有資格獲得 100聲望獎勵。 Merc正在尋找規范的答案。
我有一個這樣的物件:
> const expect = require('chai').expect
> r = { loadedElementData: { userIdRecord: { name: 'Chiara', surname: 'Fabbietti', id: 1 } }, resolvedIdParamsValues: { users: 1 }, resolvedListFilter: {}, totalLoads: 1 }
我可以檢查具有特定內容的物件是否位于深處r- 這不會拋出:
> expect(r).to.have.nested.deep.property('loadedElementData.userIdRecord', { name: "Chiara", surname: "Fabbietti", id: 1 })
但是,我想檢查部分物件。所以,即使比較物件是部分匹配,我也希望通過這樣的事情:
> expect(r).to.have.nested.deep.property('loadedElementData.userIdRecord', { id: 1, name: 'Chiara' })
這顯然行不通,因為它將檢查物件的深度相等性。
這在理論上應該有效:
expect(r).to.nested.include({'loadedElementData.userIdRecord': { id: 1, name: 'Chiara' } })
但沒有。這應該真的有效:
expect(r).to.deep.nested.include({ 'loadedElementData.userIdRecord': { id: 1, name: 'Chiara' } })
但沒有。
我可以讓它作業檢查一個屬性(只有“id”):
expect(r).to.nested.include({ 'loadedElementData.userIdRecord.id': 1})
但是我只能檢查id,不能同時檢查name。
我可以分兩步完成:
> expect(r).to.include.nested.property('loadedElementData.userIdRecord')
> expect(r.loadedElementData.userIdRecord).to.include({ id: 1 })
但這是一個兩步程序——我可以一步完成嗎?
uj5u.com熱心網友回復:
如果你檢查他們的 Github 問題,維護者承認自 2020 年以來物件子集的嵌套包含不起作用。 參考:chai Github
這是柴決定是否比較兩個物件時,做了深刻的平等或全等行:https://github.com/chaijs/chai/blob/a8359d3d15779a23a7957a4c52539d48de2763e0/lib/chai/core/assertions.js#L1892。
_.eql是對 Chai 的deep equal 自己的庫實作的參考。
在deep-eql庫中,流程將到達執行松散相等比較但不進行部分比較的函式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/387536.html
標籤:javascript 节点.js 单元测试 柴
