javascript - 断言 Set 包含部分副本预期的对象 - 玩笑
问题描述
我有一个包含结构对象的集合:
{
param1: string,
param2: string,
param3: string
}
Set.has
尝试匹配所包含数据的部分副本时,是否可以对我的集合执行检查?IE。一个对象,包含:
{
param2: string,
param3: string
}
预期对象错过了第一个param1
参数的地方......
我尝试了以下方法:
expect(mySet.has(expect.objectContaining(myData))).toBeTruthy();
我原以为expect.objectContaining()
会解决我的问题...
我还尝试通过添加“丰富”预期数据:
myData.param1 = expect.any(String);
但这同样不起作用......
解决方案
您可以将其转换为数组并断言数组的每个项目将仅包含对象并描述对象
describe('mySet', () => {
const items = Array.from(mySet);
test.each(items)('that each item of your set has objects with the following stucture', item => {
expect(item).toEqual(
expect.objectContaining({
param2: expect.any(String),
param3: expect.any(String)
})
)
});
});
推荐阅读
- javascript - 在这段代码中,为什么我必须制作外部函数?
- python - 查找列表中字符串的最大总和
- google-data-studio - Data Studio 无法将数字相加到图表中
- flutter - 如何在 Flutter 中使用 Vector2 或 Vector3 为 Matrix4.identity 设置动画?
- json - 如何读取json脚本
- azure-web-app-service - 如果从 azure web 作业运行,为什么控制台应用程序无法读取 App.config ?
- node.js - 图片从 React 上传到 NodeJS,端口连接被拒绝
- awk - awk 按字段名排列记录顺序
- dolphindb - 如何将订单队列保存在 2 级 TICK 数据中?
- c# - 在 C# 中选择类名的变量值