Nowledgeable met à disposition des assertions pour réaliser des exercices dans différents langages.
La classe AnswerTester fournit des méthodes pour écrire des assertions et tester les codes des étudiants.
Elle possède les méthodes suivantes :
La méthode add_assert permet de tester une assertion arbitraire. L'expression passée doit simplement évaluer à True ou False.
La seconde option avec la fonction lambda permet d'éviter une erreur si la variable testée n'a pas été créée par l'étudiant
Il existe trois manières d'écrire ces tests unitaires :
La fonction compare_functions permet de vérifier qu'une fonction renvoie une valeur donnée.
La fonction compare_variable permet de vérifier qu'une variable a une valeur donnée.
Cette assertion permet de vérifier qu'une fonction spécifique a été utilisée par l'étudiant avec des paramètres spécifiques. Utile pour tester l'usage de fonctions tierces qui n'ont pas de retour (model.fit, plt.plot, etc.)
Le code suivant vérifie que l'étudiant a bien appelé la fonction print avec un argument valant 2
La classe AnswerTester fournit des méthodes pour écrire des assertions et tester les codes des étudiants en Java.
Elle possède les méthodes suivantes :
La méthode addAssert permet d'ajouter des assertions personnalisées avec un feedback spécifique. Elle supporte les Supplier pour l'évaluation paresseuse.
La méthode assertEquals permet de comparer deux valeurs de même type. Elle supporte également un callback personnalisé pour les messages d'erreur avec des conditions.
Ces méthodes permettent de comparer des tableaux et des ArrayList en détail, en indiquant les indices des valeurs incorrectes.
Ces méthodes permettent de générer des données aléatoires pour les tests, utiles pour créer des jeux de données variés.
Cette méthode doit être appelée à la fin des tests pour récupérer et afficher tous les résultats des assertions.
Les assertions suivantes sont disponibles pour tester le code C :
Permet de vérifier qu'une variable a une valeur attendue.
Permet de vérifier que deux expressions ont les mêmes valeurs
Permet de vérifier que le stdout contient une valeur donnée.
Penser à utiliser init_stdout_capture et reset_stdout_capture pour que le stdout soit capturé
Les fonctions suivantes facilitent la génération de valeurs aléatoires afin de rendre les tests plus robustes