2016-05-28 15 views
0

Ok, also bin ich offensichtlich neu in Mokka. Von meinem Verständnis nach der Dokumentation zu lesen und googeln dies funktionieren soll, aber es ist nicht:Knoten Mocha asynchrone Hooks funktioniert nicht?

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); 
    }) 
}) 

der it Teil wartet nicht ‚vor‘ zu beenden und wird aufgerufen. Vielleicht lese ich die Dokumente falsch oder ich vermisse etwas, nicht sicher.

Jeder Einblick wäre hilfreich.

Antwort

1

Der Callback done muss in der Funktionssignatur für Mocha warten.

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

Ich habe in die Gewohnheit, immer done zu verwenden, wenn es gemischte synchrone und asynchrone Tests sind. Mocha kann beenden, als ob keine Tests fehlgeschlagen sind, wenn Sie einen asynchronen done auf einem it vergessen haben.

+0

Oh Mann Ich kann nicht glauben, dass ich das vermisst habe. URGH. So viel Zeit für nichts verschwendet. Schauen Sie sich die Beispielcodes genauer an:/... Vielen Dank! –

+0

Ich kenne deinen Schmerz! – Matt

Verwandte Themen