diff --git a/1NSI/04_Fonctions_specifications_et_tests/2B_specifiction_test.pdf b/1NSI/04_Fonctions_specifications_et_tests/2B_specifiction_test.pdf index 4521d64..8bd9530 100644 Binary files a/1NSI/04_Fonctions_specifications_et_tests/2B_specifiction_test.pdf and b/1NSI/04_Fonctions_specifications_et_tests/2B_specifiction_test.pdf differ diff --git a/1NSI/04_Fonctions_specifications_et_tests/2B_specifiction_test.tex b/1NSI/04_Fonctions_specifications_et_tests/2B_specifiction_test.tex index 90d971c..a226719 100644 --- a/1NSI/04_Fonctions_specifications_et_tests/2B_specifiction_test.tex +++ b/1NSI/04_Fonctions_specifications_et_tests/2B_specifiction_test.tex @@ -25,7 +25,7 @@ Programmer c'est écrire du code pour que la machine le comprenne mais aussi et \begin{minipage}{0.5\linewidth} \begin{minted}[bgcolor=base3,linenos]{python} def nom_de_la_fonction(argument1, argument2, ...): - """ Docstring """ + """ Explication du fonctionnement de la fonction """ instruction 1 instruction 2 instruction 3 @@ -47,13 +47,47 @@ Return the square root of x. \end{center} \end{definition} -\section{Spécifier} - -z - \section{Tester} -Écrire une fonction qui marche c'est bien mais écrire une fonction qui fait ce qu'on attend d'elle c'est mieux. -Pour cela, +Écrire une fonction qui marche c'est bien mais écrire une fonction qui fait ce qu'on attend d'elle c'est mieux. Pour s'assurer qu'une fonction a comportement attendu, il faut écrire des \textbf{tests} en utilisant le mot clé \mintinline{python}{assert}. +\begin{center} + \begin{minipage}{0.5\linewidth} + \begin{minted}[bgcolor=base3,linenos]{python} +assert condition + \end{minted} + \end{minipage} +\end{center} + +Si la condition est vérifiée rien ne se passera. Par contre, si elle est fausse, une erreur sera remontée. + + +\paragraph{Exemple} +\begin{center} + \begin{minipage}{0.5\linewidth} + \begin{minted}[bgcolor=base3,linenos]{python} +def mention(note): + """ Renvoie la mention qui correspond à la note""" + if note >= 16: + return "TB" + elif note >= 14: + return "B" + elif note >= 12: + return "AB" + elif note >= 9: + return "A" + else: + return "R" + +assert mention(13) == "AB" +assert mention(18) == "TB" +assert mention(9.5) == "R" + \end{minted} + \end{minipage} +\end{center} +Les deux premiers tests passent. Par contre, le dernier rate car nous avons fait une erreur dans la programmation de la fonction. + +\paragraph{Remarques:} Écrire les tests avant de coder la fonction est considéré comme une bonne pratique. + + \end{document}