unittest2#

unittest2 ist ein Backport von unittest, mit verbesserter API und besseren Assertions als in früheren Python-Versionen.

Installation#

$ bin/python -m pip install unittest2

Beispiel#

Wir wollen die folgende add-Methode testen:

[1]:
def add(a, b):
    return a + b

Dann importieren wir das Modul unter dem Namen unittest um die Portierung von Code auf neuere Versionen des Moduls in Zukunft zu vereinfachen:

[2]:
import unittest2 as unittest

class TestNotebook(unittest.TestCase):
    def test_add(self):
        self.assertEqual(add(2, 2), 5)

unittest.main(argv=[''], verbosity=2, exit=False)
test_add (__main__.TestNotebook) ... FAIL

======================================================================
FAIL: test_add (__main__.TestNotebook)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/folders/f8/0034db6d78s5r6m34fxhpk7m0000gp/T/ipykernel_69328/3137592767.py", line 6, in test_add
AssertionError: 4 != 5

----------------------------------------------------------------------
Ran 1 test in 0.002s

FAILED (failures=1)
[2]:
<unittest2.main.TestProgram at 0x7f957c80a8e0>

Auf diese Weise könnt ihr, wenn ihr zu einer neueren Python-Version wechselt und das Modul unittest2 nicht mehr benötigt, einfach den Import in eurem Testmodul ändern, ohne dass ihr weiteren Code ändern müsst.