サイズを0より大きくする必要があるPOSTMANでテストしようとしていますが、テストを正しく行うことができませんでした。
私がやったのは、サイズが0より小さいときに失敗するようにすることでした。
サイズがx数より大きいかどうかをチェックする関数がpostmanにありますか?
pm.test("Step 7/ Getting the resources and availabilites list " , function(){
pm.expect(pm.response.code).to.be.oneOf([200]);
if(pm.response.code === 200){
var jsonData = JSON.parse(responseBody);
var sizeOK= 1;
if(jsonData.resources.length>0){
}else{
//I will make the test fail if there is not data available on the response.
pm.test("Response body is empty ", function () {
pm.expect(pm.response.json().resources.length).to.equal(1);
});
}
console.log(Boolean(jsonData.resources.length>1))
}
});
pm.expect(pm.response.json().resources.length).to.be.above(0);
http://www.chaijs.com/api/bdd/ を参照してください
Postmanはchaiライブラリーの拡張実装を使用します。ソースコードはこちらで確認できます: https://github.com/postmanlabs/chai-postman
したがって、論理的には、エラーをスローしてテストがキャッチした場合にのみテストが失敗します。それ以外の場合は、単に通過します。そのため、期待される呼び出しは実際にエラーをスローし、テストが失敗します。何も返さないか、何も返さない場合でも、テストは合格です。
単純なtry and catchブロックの観点から考えてください。したがって、問題を即座に解決するには、エラーをスローするだけでテストは失敗します。
次のようにコードを変更できます。
pm.test("Step 7/ Getting the resources and availabilites list " , function(){
pm.expect(pm.response.code).to.be.oneOf([200]);
if(pm.response.code === 200){
var jsonData = JSON.parse(responseBody);
var sizeOK= 1;
if(jsonData.resources.length>0){
} else {
pm.test("Response body is empty ", function () {
throw new Error("Empty response body"); // Will make the test fail.
});
}
console.log(Boolean(jsonData.resources.length>1))
}
});
また、単純なjavascriptを使用して、長さ/サイズを簡単にテストすることもできます(例)。
pm.test("Step 7/ Getting the resources and availabilites list " , function(){
pm.expect(pm.response.code).to.be.oneOf([200]);
if(pm.response.code === 200){
var jsonData = JSON.parse(responseBody);
var sizeOK= 1;
if(jsonData.resources.length>0){
} else {
pm.test("Response body is empty ", function () {
if(jsonData.length < 3) {
throw new Error("Expected length to be greater than 3");
}
});
}
console.log(Boolean(jsonData.resources.length>1))
}
});
必要な精度はわかりませんが、Postmanで応答サイズを取得します。ボディサイズとヘッダーサイズで構成されています(アプリのサイズの値をポイントするだけです)。テスト領域では、次の操作を行ってボディサイズを回復できます。
var size=0;
for (var count in responseBody) {
if(responseBody.hasOwnProperty(count))
size += 1;
}
console.log("BODY SIZE = " + size); // you'll see the correct value in the console for the body part
そして、この値に対してテストします...