我正在尝试创建一个测试,检查json
响应是否包含一个属性或另一个属性。
我的例子:
pm.expect(jsonData.data.owner).to.have.property(('orgName') || ('firstName'));
出于某种原因,我无法在新的pm中找到or
运营商的文档。语法。
答案 0 :(得分:1)
使用oneOf()
方法
pm.expect(jsonData.carrierType.type).to.be.oneOf(["mobile", "landline"]);
答案 1 :(得分:0)
首先你滥用pm.expect,你应该做类似
的事情pm.expect(jsonData.data.owner).to.have.property('property_name','property_value)
我担心实施或条件不直接......参见示例here
答案 2 :(得分:0)
我一直在寻找在邮递员测试中实施OR的答案,但未找到任何答案。我已经完成了一个简单的if语句,以确定应该检查哪些条件。 (了解业务逻辑)。在我的应用程序中,我必须检查我们是否支持德语,但是如果默认情况下我们不将其设置为英语。这很容易,因为我从json中获取了值,然后手动检查了哪个条件应该是有效的。这可能会帮助您和其他任何人进一步执行此操作。所以对我来说,看起来像这样:
pm.test("German language support.", function(){
var jsonData = pm.response.json();
if(jsonData.count() > 0){
var langCode = jsonData[0].language.code;
if(langCode === "en"){
pm.expect(jsonData[0].language.code).to.eql("en") ;
}else{
pm.expect(jsonData[0].language.code).to.eql("de")
}
}
});