Ошибка записи асинхронных тестов Vows.js - PullRequest
3 голосов
/ 22 января 2012

Я работал с узлом и использовал обеты для написания тестов.

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 ]

0 голосов
/ 02 марта 2012

Меня беспокоит, что клавиша "версия" не имеет темы. Я думаю, что это нуждается в собственной теме. При необходимости вы можете вкладывать в нее подтемы.

Или запустите его с параметром --spec, чтобы точно узнать, какие тесты выполняются.

vows --spec

или

./node_modules/vows/bin/vows --spec
0 голосов
/ 24 января 2012

boardData.createBoard содержит другие асинхронные вызовы и, по-видимому, это не разрешено (и должно быть сделано в настройке?).Никаких доказательств, только эксперименты.

...