Feat(NSI): cours sur la documentation et les tests
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Bertrand Benjamin 2023-01-09 15:29:28 +01:00
parent d433f7223e
commit 7096d62562
2 changed files with 41 additions and 7 deletions

View File

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