2017-09-18 1 views
0

Je travaille sur une spécification de test d'unité Jasmine. Il y a plusieurs blocs describe() dans le fichier JS.Comment ne pas exécuter certains codes dans BeforeAll pour un bloc Describe() spécifique dans Jasmine

Dans BeforeAll, je ne souhaite appeler la fonction que pour Describe-Block "A" et "C", alors comment puis-je faire cela? La logique est comme ceci:

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

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

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

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

s'il vous plaît ajouter un code montrant ce que vous avez essayé. quelques liens vers ce que vous avez recherché. quelque chose pour montrer qu'il y avait un effort de votre part pour résoudre ce problème. – workabyte

+0

Amélioration de la mise en forme du texte. –

Répondre

0

Sans en savoir plus sur votre configuration, beforeAll sera toujours exécutée. Mais vous pouvez créer votre propre sharedSetup() fonction & il suffit de l'appeler en haut de A et C, mais pas B. Si elle est basée sur une promesse, vous pouvez sharedSetup.then() différer l'exécution du reste de votre code jusqu'à ce que la promesse soit résolue. Ceci est utile car il maintient la logique d'un test clairement dans ce test, plutôt que d'avoir une condition pour le test ailleurs dans le fichier de test.