Exercices de programmation mono fichier et multi-fichier

Nowledgeable met à disposition des assertions pour réaliser des exercices dans différents langages.

Python

Utilisation de la classe AnswerTester

La classe AnswerTester fournit des méthodes pour écrire des assertions et tester les codes des étudiants.

Elle possède les méthodes suivantes :

add_assert

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.

compare_variables

La fonction compare_variable permet de vérifier qu'une variable a une valeur donnée.

was_function_called_with

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

Java

Utilisation de la classe AnswerTester

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 :

addAssert - Ajout d'assertions personnalisées

La méthode addAssert permet d'ajouter des assertions personnalisées avec un feedback spécifique. Elle supporte les Supplier pour l'évaluation paresseuse.

assertEquals - Comparaison d'égalité

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.

assertArrayEquals et assertArrayListEquals - Comparaison de tableaux et listes

Ces méthodes permettent de comparer des tableaux et des ArrayList en détail, en indiquant les indices des valeurs incorrectes.

Générateurs de données aléatoires

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.

getTestOutputs - Récupération des résultats

Cette méthode doit être appelée à la fin des tests pour récupérer et afficher tous les résultats des assertions.

C

Assertions disponibles

Les assertions suivantes sont disponibles pour tester le code C :

assert_true

Permet de vérifier qu'une variable a une valeur attendue.

Assertion d'égalité

Permet de vérifier que deux expressions ont les mêmes valeurs

  • assert_int_equals
  • assert_float_equals

Assertion sur stdout

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é

Générateurs de valeurs aléatoires

Les fonctions suivantes facilitent la génération de valeurs aléatoires afin de rendre les tests plus robustes