Python versione Bignami - Scrivere test

doctest

Esegue gli esempi nelle docstring e controlla che siano corretti:

def somma(a, b):
    """
    Somma due numeri.

    Esempio:
    >>> somma(3, 5)
    8
    """
    return a + b

if __name__ == "__main__":
    import doctest
    doctest.testmod()

Per controllare gli esempi in un file di testo esterno:

doctest.testfile("README.txt")

Scrivere test negli esempi

>>> leggi_config()
{ "host": "www.example.com", "port": 8080 }

usare:

>>> leggi_config == { "host": "www.example.com", "port": 8080 }
True

unittest

if __name__ == '__main__':
    import unittest
    class PrimoGruppoDiTest(unittest.TestCase):
        def setUp(self):
            # (opzionale) Inizializza l'ambiente di ogni test
        def tearDown(self):
            # (opzionale, raro) Pulizia dopo i test
        def testQuesto(self):
            self.assertEqual(sqrt(4), 2)
            # Conta solo fino alla quarta cifra decimale
            self.assertAlmostEqual(sqrt(2), 1.4142, 4)
        def testQuestaltro(self):
            self.assertRaises(ValueError, sqrt, -1)

    class SecondoGruppoDiTest(unittest.TestCase):
        def testQuesto(self):
            ...
        def testQuestaltro(self):
            ...

    unittest.main()

Funzioni di test

Link