Ошибка записи асинхронных тестов Vows.js
Я работал с узлом и использовал обеты для написания тестов.
var vows = require('vows');
var assert = require('assert');
var boardData = require('../lib/data/BoardData.js');
vows.describe('Loading provinces and Boundries for').addBatch({
'version': {
'2008E5-1':{
topic: function () { boardData.createBoard("2008E5",this.callback); },
'exists': function (err,provs,bounds) { assert.ok(true); }
}/*,
'2008E5-2': {
topic: function () { boardData.createBoard("2008E5",this.callback); },
'exists': function (err,provs,bounds) { assert.ok(true); }
}*/
}
}).export(module);
Когда я запускаю этот код, я получаю ожидаемые результаты. Когда я раскомментирую закомментированный раздел, обратите внимание, что два успешно завершены, но один может обнаружить, что второй дважды, поместив console.log("foo"); в правильном месте.
·· ✓ OK » 2 honored (0.067s)
·
✗ Errored » callback not fired
in version 2008E5-1
in Loading provinces and Boundries for
in undefined
Должно быть, я что-то упускаю или чего-то не понимаю, но не могу понять. Может кто-нибудь мне помочь? Заранее спасибо!
2 ответа
Меня беспокоит, что у ключа "версия" нет темы. Я думаю, что это нуждается в собственной теме. Вы можете вкладывать подтемы, если это необходимо.
Или запустите его с --spec
возможность увидеть, какие именно тесты выполняются.
vows --spec
или же
./node_modules/vows/bin/vows --spec
boardData.createBoard содержит другие асинхронные вызовы и, по-видимому, это не разрешено (и должно быть сделано в настройке?). Нет доказательств, только эксперименты.