0
私はe2eテスト(分度器、ジャスミン)を書くよ リソースを作成、テスト、そして削除するためにAPIを何度も呼び出さなければならない(ページネーションテスト)。 私はrequest-promise + coアプローチを使用しました(下の要点を参照)。 しかし、My Jasmine Testは、すべてのAPIリクエストがいつ完了するかを知る必要があります。 APIの実行が完了したことを示すにはどうすればよいですか?ジャスミンセットアップ/クリーンアップにすべてのAPIリクエストが伝わったことを伝える方法
//Jasmine test // AUT = app under test // HCS = some resouce to be created multiple times to test pagination
// defaultData has 11 defaultHCSID in array
describe ("Test: Create 11 HCSes to test pagination", function() {
beforeAll(function (done) {
AUT.api.defaultHCS.create(defaultData).then(()=> {
done();
//setTimeout(function() {done();}, AUT.API_TIMEOUT);
});
});
..
rest of the test.
..
//appointments defaultHCS Api.js
var co = require('co');
var _ = require('lodash');
var rp = require('request-promise');
var urlLogin ={url:"<URL>", body:"<body>" method: 'POST', headers: {"Content-Type": "application/json"}, json: true}
var urlDefaultHCSSave ={url:"<URL>", body:"<body>" method: 'POST', headers: {"Content-Type": "application/json"}, json: true}
exports.create = function (customTestData) {
return co(function*() {
var response, token, testData;
testData = customTestData || defaultTestData;
response = yield rp(urlLogin);
urlDefaultHCSSave.headers["x-auth-token"] = response.token;
var size= _.size(testData.defaultHCSID);
process.stdout.write("API DEFAULT HCS Create. Size: " + size + " ");
var total = 0;
testData.defaultHCSID.forEach(function (item,i){
return co(function*() {
response = yield rp(defaultHCSSave); //parsedBody
total+=1;
if (total === size){ process.stdout.write("All Done\n"); }
}).catch(function (err) {console.error(err.stack); })
});
});
};