A unittest egy Python programozói könyvtár, automatizált tesztek létrehozására.
Dokumentáció:
def calcArea(base, height): return base*height/2
import haromszog import unittest class TestHaromszog(unittest.TestCase): def testCalcAreaNormal(self): self.assertEqual(haromszog.calcArea(30, 35), 525.0, 'Az eredmény 525.0 kell legyen') def testCalcAreaLowLeft(self): self.assertEqual(haromszog.calcArea(1, 35), 17.5, 'Az eredmény 17.0 kell legyen') if __name__ == "__main__": unittest.main()
def test_valami(): pass
if __name__ == "__main__":
Egyszerűen futtassuk a programot.
#... def test_calcArea_with_float_values(self): self.assertTrue(type(calcArea(4.5, 5.5)) == float, 'Az eredmény float kell legyen, ha az alap 4.5 és a magasság 5.5')
@unittest.skip('Ez most ne fusson') def test_calcArea_in_4_5_to_10(self): self.assertEqual(calcArea(4, 5), 10, 'Az eredmény 10 kell legyne')
from haromszog import calcArea import unittest class TestHaromszog(unittest.TestCase): @unittest.skip('Ez most ne fusson') def test_calcArea_in_4_5_to_10(self): self.assertEqual(calcArea(4, 5), 10, 'Az eredmény 10 kell legyne') def test_calcArea_with_zero_base(self): self.assertEqual(calcArea(0, 5), 0, 'Az eredmény 0 kell legyen, ha az alap 0') if __name__ == '__main__': unittest.main()
Ilyen esetben futtassuk parancssorból vagy VSCode-ban a „Testing” eszközzel.
app01/ |-app/ | `-triangle.py `-tests/ `-test_triangle.py
def calcArea(base, height): return (base * height) / 2
from app.triangle import calcArea import unittest class TestTriangle(unittest.TestCase): def test_bemenet_30_35(self): actual = calcArea(30, 35) expected = 525; self.assertEqual(actual, expected)
Futtatás:
python3 -m unittest test/test_triangle.py
VSCode-ban használhatjuk a futtatást, de akár használhatjuk a „Testing” eszközt.
Lépések:
Beállítás után kapsz egy fájlt:
app01/ |-app/ | `-triangle.py `-test/ `-test_triangle.py
{ "python.testing.unittestArgs": [ "-v", "-s", "./test", "-p", "test*.py" ], "python.testing.pytestEnabled": false, "python.testing.unittestEnabled": true, }
from app.triangle import calcArea import unittest class TestTriangle(unittest.TestCase): def test_bemenet_30_35(self): actual = calcArea(30, 35) expected = 525; self.assertEqual(actual, expected)
Ha VSCode-ból futtatjuk nem szükséges a if blokkjában a unittest.main() a fájl végén!
{ "python.testing.unittestArgs": [ "-v", "-s", "./test", "-p", "test*.py" ], "python.testing.pytestEnabled": false, "python.testing.unittestEnabled": true, "python.analysis.extraPaths": [ "./app" ] }
Extra útvonal esetén nem szükséges megadni az src könyvtárat.
from triangle import calcArea import unittest class TestTriangle(unittest.TestCase): def test_bemenet_30_35(self): actual = calcArea(30, 35) expected = 525; self.assertEqual(actual, expected)