Frisby:测试对象中至少有一个字段具有正确的数据
Frisby: test that at least one of the fields in an object has the correct data
我需要用 Frisby 测试 3 个地址中至少有一个有数据并且不为空。下面是当前返回的内容:
{ physicalAddress: null,
postalAddress:
{ addressNumber: 1234,
addressLine1: 'BlaBla 1',
addressLine2: 'BlaBla',
addressLine3: null,
addressLine4: null,
postalCode: '1234',
country: 'BlaBla',
},
emailAddress: null}
我想编写一个测试,如果这些地址类型中的一种以上 returns 具有正确的数据,该测试就会通过。
像这样:(也许我可以用一些聪明的东西来代替'^?^?^',如果它是一个数组我本来可以使用'?'。
.expectJSONTypes('^?^?^', {
addressNumber: Number,
addressLine1: String,
addressLine2: String,
postalCode: String,
country: String
})
如果有一个结构更好的响应,其中所有地址都到达一个数组,这可能会更容易。
但是,对于您获得的响应类型,解决方案是使用 afterJSON() 和 jasmine-node 匹配器,如下所示:
.afterJSON(function(obj){
expect(obj.addr1 =! null || obj.addr2 =! null || obj.addr3 =! null).toBe(true);
})
我需要用 Frisby 测试 3 个地址中至少有一个有数据并且不为空。下面是当前返回的内容:
{ physicalAddress: null,
postalAddress:
{ addressNumber: 1234,
addressLine1: 'BlaBla 1',
addressLine2: 'BlaBla',
addressLine3: null,
addressLine4: null,
postalCode: '1234',
country: 'BlaBla',
},
emailAddress: null}
我想编写一个测试,如果这些地址类型中的一种以上 returns 具有正确的数据,该测试就会通过。
像这样:(也许我可以用一些聪明的东西来代替'^?^?^',如果它是一个数组我本来可以使用'?'。
.expectJSONTypes('^?^?^', {
addressNumber: Number,
addressLine1: String,
addressLine2: String,
postalCode: String,
country: String
})
如果有一个结构更好的响应,其中所有地址都到达一个数组,这可能会更容易。
但是,对于您获得的响应类型,解决方案是使用 afterJSON() 和 jasmine-node 匹配器,如下所示:
.afterJSON(function(obj){
expect(obj.addr1 =! null || obj.addr2 =! null || obj.addr3 =! null).toBe(true);
})