bik*_*erp 3 javascript testing unit-testing jasmine
有没有办法将对象与数组属性部分匹配?假设我想测试这个对象
{
“组”:[
{
“身份证”:1,
"name": "第 1 组",
“人们”: [
{
"firstName": "约翰",
“年龄”:23
},
{
"firstName": "伊森",
“年龄”:18
}
]
},
{
“身份证”:2,
"name": "第 2 组",
“人们”: [
{
"firstName": "彼得",
“年龄”:47
},
{
"firstName": "亨利",
“年龄”:55
}
]
}
]
}
并确保它包含名称Group 1包含John和的组Ethan。我知道 jasmine.objectContaining 但我不知道如何应用于这个特殊情况。感谢您的任何建议。
您可以使用下面的jasmine.arrayContaining和来获得所需的结果jasmine.objectContaining。
请注意: 'foo' 是您的测试数据所在的变量,如您上面所写。
describe("Array comparison", function () {
it("matches objects with the expect key/value pairs", function() {
expect(foo).toEqual(jasmine.objectContaining({
groups: jasmine.arrayContaining([
jasmine.objectContaining({name: "Group 2"}),
jasmine.objectContaining({
people: jasmine.arrayContaining([
jasmine.objectContaining({firstName: "Peter"}),
jasmine.objectContaining({firstName: "Henry"})
])
})
])
}));
Run Code Online (Sandbox Code Playgroud)
这是上述工作代码的jsFiddle。
| 归档时间: |
|
| 查看次数: |
2460 次 |
| 最近记录: |