Ошибка записи асинхронных тестов 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 содержит другие асинхронные вызовы и, по-видимому, это не разрешено (и должно быть сделано в настройке?). Нет доказательств, только эксперименты.

Другие вопросы по тегам