我有问题要在断言之前将字符串值(保存为环境变量)转换为布尔值。
我目前在邮差测试中有这个:
var regDB_p2018 = pm.environment.get("u_p2018");
pm.expect(jsonData.premiumTO.particip2018).to.deep.equal(regDB_p2018);
跑完后我得到消息:
测试Register_User | AssertionError:期望真实到非常平等' true'
我认为问题在于环境变量u_p2018
因为它在文件中保存为字符串,但在JSON的响应消息中,jsonData.premiumTO.particip2018
的值是布尔值。
在进行断言之前,如何将u_p2018
的值转换为布尔值?
其他信息:
在第一个请求中,我将script_1
中的以下值设置为初始值:
pm.environment.set("u_p2018", true);
pm.environment.set("u_p2020", false);
然后我在第二个请求中发出注册POST
请求:
{
"personId": 0,
"name": "Sample",
"email": "sample@gmail.com",
"account": {
"userName": "sample@gmail.com",
"rejectMessage": "",
"admin": false
},
"premiumTO": {
"name": "Bbthvn",
"particip2018": true,
"particip2020": false,
"address": {
"addressId": 0,
"country": "U.S.A",
"city": "NY",
},
"photo": null,
"quoteVerified": false
}
}
然后在收到回复消息后的script_2
第二个请求中,我执行以下检查:
var var_regDB_p2018 = pm.environment.get("u_p2018");
var var_regDB_p2020 = pm.environment.get("u_p2020");
pm.expect(jsonData.premiumTO.particip2018).to.deep.equal(var_regDB_p2018);
pm.expect(jsonData.premiumTO.particip2020).to.deep.equal(var_regDB_p2020);
答案 0 :(得分:1)
如果您所做的只是将值设置为true
,是否需要将其设置为环境变量?
pm.test("Equal to true", () => {
pm.expect(pm.response.json().myValue).to.equal(true);
});
所以在你的例子中,这可能只是:
pm.expect(jsonData.premiumTO.particip2018).to.equal(true)
pm.expect(jsonData.premiumTO.particip2020).to.equal(false)
或者
pm.expect(jsonData.premiumTO.particip2018).to.be.true
pm.expect(jsonData.premiumTO.particip2020).to.be.false
尝试更好地理解Chai
断言语法和一些基本的JavaScript可能会更好。这将清除您创建支票时的一些后续问题。