mars 4, 2023

A la découverte de Twizzar: la nouvelle librairie de test magique ?

J’étais en train de faire de la veille lorsque je suis tombé sur une vidéo parlant de Twizzar.

https://www.twizzar.com/

Par curiosité je suis allé voir ce que proposait de plus cette librairie de tests unitaires.

Nous sommes tous conscients que les tests unitaires sont une partie extrêmement importante du développement et qu’elle est nécessaire.

Personnellement, malgré la débauche de packages Nuget qui existent pour nous aider comme AutoMoq, AutoFixture etc, je trouve cela toujours aussi fastidieux.

Ici, Twizzar a une proposition folle qui est de détecter et de résoudre les dépendances du service que nous souhaitons tester.

C’est ce que nous allons voir ensemble !

1- L’installation

Afin d’utiliser Twizzar, il va falloir commencer par installer une extension Visual Studio Disponible ici : https://marketplace.visualstudio.com/items?itemName=vi-sit.twizzar-vs22

si celui-ci est bien installé, vous devriez voir ceci :

Ensuite prenez un projet de tests unitaires et rajouter le package Nuget Twizzar.Api : https://www.nuget.org/packages/Twizzar.Api

Ce package installera tout ce qu’il faut pour générer vos dépendances.

2- Tests

Il va falloir créer un projet de tests maintenant et voir ce que cela donne.

De mon coté j’ai repris un ancien projet que j’avais fait pour tester les API Azure des services Cognitifs, VideoIndexer et de Storage account.

Mes services sont à la racine mais peu importe.

Je vais rajouter un projet de test maintenant

Je vais rajouter le package Nuget Twizzar à mon projet de tests :

Et tester mon service avec le plus de dépendances “AzureSearchService”.

Effectivement le fait d’avoir mon “sut”(system under test) sur le service me permet de voir les dépendances :

La petite flèche à coté de votre service permet d’ouvrir une fenêtre pour voir et même configurer les dépendances.

En effet, si vous faites “Ctrl +Espace”, Twizzar va vous proposer de rajouter des dépendances :

En arrière plan, Twizzar va générer une classe et votre classe de test deviendra une classe partielle si tout va bien.

Voici la classe partielle générée :

Je dis , si tout va bien car dans mon cas , le fait de demander la génération des dépendances faisait crasher mon Visual Studio….. 😥

Après beaucoup d’efforts j’ai pu avoir mes dépendances :

J’ai réussi péniblement à aller au bout de mon setup et de lancer un test car l’extension semble extrêmement instable.

En conclusion, je pense que le projet est ambitieux mais il lui manque pas mal de choses pour être adopté actuellement comme :

  • Stabilité
  • Performance
  • Prise en charge d’autres IDE comme JetBrains Rider

Malgré tout je vais continuer à suivre le projet qui ne fait que débuter et donc va s’améliorer.