typescript - 它有一个像 toEqual 一样工作的笑话匹配器,但将 null 和 undefined 视为相等的值?
问题描述
我有一个 API,它不会忽略具有“空”(null、none、nil)值的字段的 JSON 序列化,并将它们全部返回为"fieldName": null
. 我在测试代码(TypeScript)中输入了 DTO,我想将这些字段设为可选(?),并在许多地方将它们设为未定义。不幸的是(对我来说)开玩笑的 toEqual() 将 undefined (测试代码中的值)和 null (来自 API 的值)视为不同的值。我目前的解决方案是使用联合类型string | null
,但它非常冗长,因为我必须始终初始化这些字段。我检查了 jest 的参考资料,但没有找到“现成的”解决方案。那么,创建自定义匹配器是解决我的问题的唯一方法吗?注意:我无法更改 API 中的序列化策略。
解决方案
expect(null).toBe(undefined)
失败!
基本上你所拥有的是,有时在评估一个对象后,你null
在一侧和另一侧undefined
都有
我尝试使用其他开玩笑的方法,toEqual
但没有奏效。
我的解决方案
expect(null == undefined).toBe(true)
推荐阅读
- php - Auth::login 无效
- c# - 停止执行代码并等待按钮被点击
- java - 当我开始一个带有过渡的活动时,我的动态创建的表怎么会出现而不是过渡
- c# - 从填充了另一个 ArrayList 的 ArrayList 中检索数据
- java - java - 如何使用java.util.Calendar在每年的同一日期设置一个重复性假期(不考虑年份部分)?
- typescript - 未验证打字稿约束
- javascript - 如何等待功能?
- python - 尝试在 Python 中交换列表中的项目
- angular - 使用循环将多条记录插入Firebase?
- ios - 使用 iPhone 或 iPad 无法在 Safari 上播放 Quicktime 视频