2013-07-19 1 views
2

J'utilise Spock pour tester avec groovy et je veux une règle de test personnalisée en cas d'échec. D'abord je l'ai fait avec MethodRule qui est maintenant obsolète. J'ai donc essayé TestWacher mais Spock met en cache des exceptions avant que ma règle puisse le mettre en cache.Créer une règle de test personnalisée pour spock

public class SimpleOnFailed extends TestWatcher { 

    @Override 
    protected void failed(Throwable e, Description description) { 
     print "Prints when test fails" 
    } 

} 

et il n'imprime jamais mon instruction d'impression à partir de la méthode échouée.

Répondre

3

Il existe un problème connu avec les exceptions de lancement de Spock et TestRule qui n'est pas facile à résoudre car la sémantique de Spock diffère de celle de JUnit à cet égard. (Si vous êtes intéressé par les détails, vous pouvez en savoir plus au http://forum.spockframework.org.) Les solutions doivent utiliser un MethodRule à la place (qui n'est plus obsolète dans JUnit le plus récent) ou écrire une extension Spock. Ce dernier n'est pas encore considéré comme un SPI stable, mais si vous pouvez vivre avec des changements potentiels, jetez un oeil aux extensions dans la base de code Spock (http://github.spockframework.org).

+0

Merci d'avoir répondu, donc je vais m'en tenir à 'MethodRule' – IowA

Questions connexes