Senfgurke est un exemple de framework de test piloté par VBA. Qu'est-ce que cela signifie? En utilisant Senfgurke, vous pouvez transformer des exemples donnés en langage naturel en tests automatisés exécutés par VBA (Visual Basic for Applications).
MÉFIEZ-VOUS! C'est un travail en cours. Les versions futures pourraient casser votre code d'automatisation de test des anciennes versions !
Imaginez que quelqu'un vous demande d'écrire une nouvelle fonction de somme "spéciale" pour Excel qui ajoute la valeur 1 au résultat en vous donnant cet exemple :
Example: add +1 to sum
Given a is 2
And b is 3
When sum+1 is applied to a and b
Then the result is 6
Vous pouvez maintenant ajouter cet exemple à une fonctionnalité et enregistrer tout le fichier nommé « sum_plus_one.feature » dans un répertoire nommé «features». Le répertoire doit se trouver au même emplacement que votre fichier Office contenant votre code VBA.
Si vous exécutez Senfgurke pour la première fois, il vous proposera d'ajouter une nouvelle fonction comme celle-ci :
Public Sub Given_a_is_INT_C722764574FB(step_parameters As Collection)
'Given a is 2
End Sub
Ne vous confondez pas avec la partie C722764574FB du nom de la fonction. Cette valeur de hachage aide Senfgurke à faire correspondre la fonction avec l'étape d'origine de l'exemple. C'est maintenant à vous de remplir la fonction avec du code, afin de pouvoir tester votre nouvelle fonction pour être sûr que sum+1 renvoie les bons résultats.
Lorsque vous aurez répété cela pour chaque étape de l'exemple et exécuté Senfgurke, vous pourriez recevoir ceci sur la console :
Feature: sum plus one
Rule: add one to sum results
Example: add +1 to sum
OK Given a is 2
OK And b is 3
OK When sum+1 is applied to a and b
OK Then the result is 6
De cette façon, Senfgurke vous indique si votre code a réussi ou a provoqué une erreur.
Senfgurke est fourni en tant que complément spécifique à l'application. De cette façon, vous pouvez facilement séparer l'application testée du framework de test Senfgurke. Pour démarrer une nouvelle application VBA, procédez comme suit :
La carte des événements suivante expliquera ce qui se passera lorsque vous demanderez à Senfgurke d'exécuter vos fonctionnalités.
Les tests sont généralement lancés à partir de la fenêtre de la console VBA. De cette façon, vous pouvez ajouter des balises ou des filtres (pour les noms de fichiers) pour limiter le test à des balises ou des fichiers de fonctionnalités spécifiques.
La première chose que Senfgurke fera est de rechercher des fichiers de fonctionnalités et de les charger en mémoire pour un traitement ultérieur.
Le fait d'avoir toutes les fonctionnalités en mémoire permet à Senfgurke de traduire (analyser) plus facilement le langage Gherkin en instructions détaillées pour une exécution ultérieure. Par exemple, les exemples sans balises correspondantes définies au début du test peuvent être ignorés pour une exécution ultérieure ou des étapes en arrière-plan d'une fonctionnalité seront ajoutées à chaque exemple (c'est-à-dire scénario) de cette fonctionnalité.
L'étape suivante consiste évidemment à exécuter toutes ces instructions d'exécution détaillées de l'étape précédente. Cela inclura également le retour de tous les résultats de l’exécution.
Parallèlement à l'exécution des fonctionnalités mentionnées ci-dessus, les résultats seront rapportés sous différents formats. La valeur par défaut est le format détaillé qui écrit les fonctionnalités Gherkin dans la fenêtre de la console VBA en ajoutant simplement le résultat de l'exécution à chaque étape des exemples.
À la fin de chaque test, Senfgurke ajoutera des statistiques, par exemple la durée et le nombre d'exemples d'étapes exécutées.
Pour une documentation plus détaillée, veuillez consulter les fichiers de fonctionnalités pour Senfgurke en commençant par l'index généré par Feature Indexer.
Le schéma fonctionnel FMC montre que la configuration typique se compose de trois couches :
Consultez le journal des décisions d'architecture pour connaître certaines décisions générales.
L'architecture en couches doit garantir que la fonctionnalité fournie par Senfgurke est séparée de la logique d'application.
à confirmer