Article de reference

Spock (cadre de test)

Spock est un framework de test Java capable de gérer le cycle de vie complet d'un programme informatique. Histoire Cet outil a été initialement créé en 2008 par Peter Niederwies...

Spock est un framework de test Java capable de gérer le cycle de vie complet d'un programme informatique.

Histoire

Cet outil a été initialement créé en 2008 par Peter Niederwieser, ingénieur logiciel chez Gradleware. Luke Daley (également chez Gradleware), créateur du célèbre Caractéristiques

Spock est un framework de test, de spécification et de simulation (moteur de test).

Les tests sont écrits en Groovy et peuvent donc servir aux tests unitaires de code Groovy et Java, ainsi qu'à la création de tests fonctionnels. La syntaxe exploite le DSL de Groovy et certains concepts de BDD, permettant ainsi d'écrire un code concis et maintenable.

Ce framework prend en charge les tests basés sur les données et les tests combinatoires. Les tests de simulation, de stubbing et d'interaction sont également fournis nativement.

Structure du code de test

Dans Spock, les classes de test sont appelées spécifications. Elles étendent la Specificationclasse de bibliothèque et peuvent contenir

  • champs (instance, statique et partagé)
  • dispositifs (méthodes de dispositif qui configurent et nettoient l'état)
  • caractéristiques (méthodes de caractéristiques)
  • fonctions d'assistance (méthodes d'assistance)

Le code des méthodes de fonctionnalités est divisé en blocs logiques en utilisant le style Gherkin .

Les blocs given et setup (qui offrent la même fonctionnalité) sont utilisés pour configurer l'état initial.

Les blocs « when » décrivent les actions, puis les vérifications des résultats de ces actions ; chaque paire « when/then » encapsule donc une étape de test.

Le bloc expect combine les fonctionnalités des blocs when . Cela simplifie le code de test pour les cas simples.

L'état peut être restauré dans le bloc de nettoyage . Le bloc supplémentaire « and » n'a pas de signification propre et sert à subdiviser plus finement les étapes en sous-étapes de même nature.

Les blocs « where » et « filter » permettent de spécifier les données d'entrée et les données attendues. Les valeurs peuvent être définies à l'aide de la syntaxe de tableau ou sous forme de flux de valeurs. Ceci permet la mise en œuvre de tests pilotés par les données, y compris le calcul automatique des produits cartésiens .

Tous les blocs, à l'exception des blocs « where » et « filter », peuvent avoir des étiquettes fonctionnant comme des commentaires et visibles dans les rapports de test.

Exécution des tests

Spock utilise JUnit runner, et les spécifications peuvent être exécutées par divers outils de construction et IDE, par exemple IntelliJ IDEA .

Ce framework prend en charge l'exécution parallèle, grâce à son implémentation dans la plateforme JUnit. Il peut être utilisé aussi bien au niveau des spécifications qu'au niveau des fonctionnalités et se configure via des annotations.

De plus, les tests peuvent être intégrés au framework Spring TestContext .

Signalement

L' extension Spock Reports (de Renato Athaydes) permet de générer des rapports Spock. Elle prend en charge le CSS personnalisé et la copie de blocs de code issus des spécifications, permettant ainsi au lecteur de visualiser précisément le code exécuté lors d'un test.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index