Principes d’ingénierie logicielle en Python
Adam Spannbauer
Machine Learning Engineer at Eastman
doctestpytest
def square(x): """Élever le nombre x au carré :param x: nombre à élever au carré :return: x au carré >>> square(3) 9 """ return x ** 3import doctest doctest.testmod()
Exemple échoué :
square(3)
Attendu :
9
Obtenu :
27


travail dans workdir/tests/test_document.py
from text_analyzer import Document # Tester l'attribut tokens sur l'objet Document def test_document_tokens(): doc = Document('a e i o u') assert doc.tokens == ['a', 'e', 'i', 'o', 'u']# Tester le cas limite d'un document vide def test_document_empty(): doc = Document('') assert doc.tokens == [] assert doc.word_counts == Counter()
# Créer 2 objets Document identiques doc_a = Document('a e i o u') doc_b = Document('a e i o u') # Vérifier si les objets sont == print(doc_a == doc_b)# Vérifier si les attributs sont == print(doc_a.tokens == doc_b.tokens) print(doc_a.word_counts == doc_b.word_counts)
FalseTrue True
travail avec terminal
datacamp@server:~/work_dir $ pytest
collected 2 items
tests/test_document.py .. [100%]
========== 2 passed in 0.61 seconds ==========
travail avec terminal
datacamp@server:~/work_dir $ pytest tests/test_document.py
collected 2 items
tests/test_document.py .. [100%]
========== 2 passed in 0.61 seconds ==========
travail avec terminal
datacamp@server:~/work_dir $ pytest
collected 2 items
tests/test_document.py F.
============== FAILURES ==============
________ test_document_tokens ________
def test_document_tokens(): doc = Document('a e i o u')
assert doc.tokens == ['a', 'e', 'i', 'o']
E AssertionError: assert ['a', 'e', 'i', 'o', 'u'] == ['a', 'e', 'i', 'o']
E Left contains more items, first extra item: 'u'
E Use -v to get the full diff
tests/test_document.py:7: AssertionError
====== 1 failed in 0.57 seconds ======
Principes d’ingénierie logicielle en Python