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
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