检查 Postman 测试用例中的空值 .not.eql() 或 .not.equal() 不起作用

Div*_*Div 3 chai postman postman-testcase

我正在处理一个 API 项目并使用 Postman 来测试 API。我写了几个测试用例来检查 null 如下,

//user id is present
pm.test("user id is present", function() {
    pm.expect(jsonData.data[0].userId).not.eql(null);
});
Run Code Online (Sandbox Code Playgroud)

.not.equal()按照这个答案中的描述尝试过。

//user id is present
pm.test("user id is present", function() {
    pm.expect(jsonData.data[0].userId).not.equal(null);
});
Run Code Online (Sandbox Code Playgroud)

但是,即使 userId 是null. 有没有想过在 Postman 测试用例中检查空值?

Âng*_*tto 6

首先,打开控制台并运行流动的代码段来检查类型:

pm.test("user id is present", function() {
   console.log(typeof jsonData.data[0].userId);
   console.log(typeof jsonData.data[0]);
   console.log(typeof jsonData);
}
Run Code Online (Sandbox Code Playgroud)

如果得到undefinedfor jsonData.data[0].userId,则需要将测试更改为 assertnullundefined

pm.test("user id is present", function() {
   pm.expect(jsonData.data[0].userId).to.exist //check if it is not equal to undefined
   pm.expect(jsonData.data[0].userId).to.not.be.null; //if it is not equal to null
}
Run Code Online (Sandbox Code Playgroud)