2016-05-28 2 views
0

Итак, я, очевидно, новичок в мокко. Из моего понимания после прочтения документации и прибегая к помощи это должно работать, но это не так:узлы мокко асинхронные крючки не работают?

describe("Check before", function(){ 

    var beforeCalled = false; 
    before(function(){ 
     setTimeout(function() { 
      beforeCalled = true; 
      done(); 
     }, 150); 
    }); 

    it("should run after before called", function(){ 
     expect(beforeCalled).to.equal(true); 
    }) 
}) 

it часть не ждать «до», чтобы закончить и называется. Возможно, я прочитал документы неправильно или я что-то упустил, не уверен.

Любое понимание было бы полезно.

ответ

1

Обратный вызов done должен находиться в сигнале функции для мокко для ожидания.

before(function(done){ 
    setTimeout(function() { 
     beforeCalled = true; 
     done(); 
    }, 150); 
}); 

у меня в привычку всегда использовать done при наличии смешанных синхронных и асинхронных тестов. Мокка может закончиться так, как если бы тесты не потерпели неудачу, если вы забыли один асинхронный done на it.

+0

О, человек, я не могу поверить, что пропустил это. Urgh. Так много времени потрачено впустую. Вам нужно более внимательно изучить образцы кодов:/... Большое вам спасибо! –

+0

Я знаю твою боль! – Matt

Смежные вопросы