2017-09-18 1 views
0

Ich arbeite an einer Jasmine Unit-Test-Spezifikation ausgeführt werden. Es gibt mehrere describe() Blöcke in der JS-Datei.Wie nicht bestimmten Codes in BeforeAll für einen bestimmten Beschreiben() Block in Jasmine

In BeforeAll möchte ich nur Funktion für Describe-Block "A" und "C" aufrufen, also wie kann ich das tun? Die Logik ist wie folgt aus:

//SampleSpec.js 
BeforeAll(function() { 
     if(descirbe name !== "B"){ 
      DoSomething(); 
     } 
}); 

descirbe("A", function() { 
     //... 
}); 

descirbe("B", function() { 
     //.. 
}); 

descirbe("C", function() { 
     //... 
}); 
+1

bitte einige Code zeigt addieren, was Sie versucht haben. einige Links zu dem, was Sie gesucht haben. etwas, um zu zeigen, dass es etwas Anstrengung auf deinem Ende gab, um das zu lösen. – workabyte

+0

Verbesserte die Textformatierung. –

Antwort

0

Ohne mehr über Ihr Setup zu wissen, wird beforeAll immer laufen. Aber Sie können Ihre eigene sharedSetup() Funktion erstellen & nennen es nur an der Spitze der A und C, aber nicht B. Wenn es Versprechen basiert, können Sie sharedSetup.then() verzögern, den Rest Ihres Codes auszuführen, bis das Versprechen verrechnet wird.

Dies ist vorteilhaft, da sie die Logik für einen Test eindeutig in diesem Test hält, anstatt eine bedingte für den Test an anderer Stelle in der Testdatei mit.

Verwandte Themen