最初に実行する必要があるこれらの API 呼び出しがテストに含まれているため、後で使用するために応答を変数に保存できます。しかし、テストが非同期で実行されているように見えるため、変数が設定される前に 2 番目のテストが終了します。テストを同期的に実行するにはどうすればよいですか?
before
1 つの方法は、コールバックを使用して渡すことだと聞きましたdone
。しかし、私はそれを行う方法がわかりませんjasmine-node
。
テストの例:
var dataID = '';
frisby.create('Get ID')
.get(url)
.expectStatus(200)
.afterJSON(function(json) {
dataID = json.id;
})
.toss();
frisby.create('Get data with ID')
.get(url, id)
.expectStatus(200)
.expectJSON({"id": dataID})
.toss();
編集:
だから私はこのようにテストを行ってみましたが、done()
コールバックが呼び出されないようです。(テストタイムアウト)
describe('API TEST', function() {
beforeEach(function(done) {
frisby.create('Get ID')
.get(url)
.expectStatus(200)
.afterJSON(function(json) {
dataID = json.id;
done(); //?
})
.toss()
});
it('should work', function() {
console.log('TEST');
}); //"timed out after 5000 msec waiting for spec to complete"
});