I have tried with \"!== null\", but it is returning PASS even when the field is returning 0 or \"\".
How about:
var jsonData = JSON.parse(responseBody);
tests["Item is not null"] =
jsonData.item !== null &&
jsonData.item !== ' ' &&
jsonData.item !== 0;
I faced similar issue. But checking it in following way worked for me
tests["Item is not null"] =
jsonData.item !== undefined;
Did you try
pm.expect(response.your_field).to.eql(null);
?
You gotta place the + [i] after the function you gonna validate on the tests[] so only it will return valid statements on each array. For example,
function checkIsNull() {
var items = json.data.pois.items
var PlaceIdIsNull = true;
var subTypeExtraIsNull = true;
var websiteIsNull = true;
for (var i = 0; i < items.length; i++) {
if (items[i].placeId !== null) {
PlaceIdIsNull = false;
}
if (items[i].subTypeExtra !== null) {
subTypeExtraIsNull = false;
}
if (items[i].website === null) {
websiteIsNull = false;
tests['website is null only happened on these arrays' + [i]] = true;
}
tests['Place ID is null '] = PlaceIdIsNull
tests['subTypeExtra is null '] = subTypeExtraIsNull
}
}
checkIsNull();
If you are checking the Id of the first item returned in a list, you could use not.equal(null)
:
pm.expect(pm.response.json().value[0].Id).not.equal(null);
Note that the word "equal" is fully spelled out, although the shortened "eql" does work.
Postman doesn't reference non-existent paths as null, but as undefined.
pm.expect(JsonResponse.FAKE.PATH).not.eql(undefined);
This test should fail, as this fake json path is actually undefined.