Da qualche giorno mi sto divertendo con python.
Devo dire che il linguaggio è molto divertente, abbastanza semplice da imparare e intuitivo.
Python ha una suite di test integrata nelle librerie del linguaggio e questo mi ha piacevolemente sorpreso. Basta fare un import unittest che subito tutto è a disposizione.
Mettiamo che io abbia una file calculator.py con al suo interno una funzione che voglio testare.
Creerò un file calculator_specs.py con i test che stressano la funzione.
# Fabio Mattei # 18 August 2012 import unittest from calculator import add class TestSequenceFunctions(unittest.TestCase): def test_return_0_for_empty_strings(self): self.assertEqual(add(''), 0) def test_return_bare_numbers(self): self.assertEqual(add('0'), 0) self.assertEqual(add('1'), 1) def test_adds_numbers(self): self.assertEqual(add('1,2'), 3) self.assertEqual(add('1,10'), 11) if __name__ == '__main__': unittest.main()
È importante importare sia la suite di test che il file da testare.
La classe potrà un nome qualsiasi ma doveà surclassare unittest.TestCase.
Tutti i metodi all’interno della classe devono cominciare con la parola test.
A questo punto basta lanciare il file da prompt con un normalissimo: >python calculator_specs.py e la suite di test si attiverà
Ovviamente non dimentichiamoci di definire il file in cui la funzione viene definita! 🙂
calculator.py
# Fabio Mattei # 18 August 2012 def add(st): st = st.replace('\n', ',') if st: return add_numbers_in_string(st) else: return 0 def add_numbers_in_string(st): return sum(map(int, st.split(',')))
Davvero molto bello!
Nessun commento