Running Contoh
Buat direktori baru yang dipanggil
python_tests dan tambahkan dua fail:
init .py . Struktur fail mestilah seperti berikut:
Fail<code>python_tests/ -__init__.py - car.py - test_car.py</code>
car.py akan digunakan untuk menulis logik program kereta memandu sendiri yang kami gunakan dalam contoh ini, dan fail test_car.py akan digunakan untuk menulis semua ujian.
kandungan fail car.py:
class SelfDrivingCar: def __init__(self): self.speed = 0 self.destination = None def _accelerate(self): self.speed += 1 def _decelerate(self): if self.speed > 0: self.speed -= 1 def _advance_to_destination(self): distance = self._calculate_distance_to_object_in_front() if distance < 1: # 假设距离单位为米 self.stop() elif distance < 5: self._decelerate() elif self.speed < self._get_speed_limit(): self._accelerate() def _has_arrived(self): pass # 需要实现到达目的地判断逻辑 def _calculate_distance_to_object_in_front(self): pass # 需要实现计算前方物体距离的逻辑 def _get_speed_limit(self): pass # 需要实现获取速度限制的逻辑 def stop(self): self.speed = 0 def drive(self, destination): self.destination = destination while not self._has_arrived(): self._advance_to_destination() self.stop()
from unittest import TestCase
if __name__ == '__main__': unittest.main()
test_car.py fail seperti yang ditunjukkan di bawah.
import unittest from car import SelfDrivingCar class SelfDrivingCarTest(unittest.TestCase): def setUp(self): self.car = SelfDrivingCar() def test_stop(self): self.car.speed = 5 self.car.stop() self.assertEqual(0, self.car.speed) self.car.stop() self.assertEqual(0, self.car.speed) if __name__ == '__main__': unittest.main(verbosity=2)
python test_car.py
<code>test_stop (__main__.SelfDrivingCarTest) ... ok ---------------------------------------------------------------------- Ran 1 test in 0.000s OK</code>
seperti namanya, -v logo:
selfdrivingcartest.
Terdapat beberapa tanda untuk mengawal operasi:
python -m unittest -h
ujian unit adalah asas kod yang boleh dipercayai. Dalam tutorial ini, saya meneroka beberapa prinsip dan garis panduan untuk ujian unit dan menerangkan beberapa sebab di sebalik amalan terbaik. Semakin besar sistem yang anda bina, ujian unit yang lebih penting adalah. Tetapi ujian unit tidak mencukupi. Sistem besar juga memerlukan jenis ujian lain: ujian integrasi, ujian prestasi, ujian beban, ujian penembusan, ujian penerimaan, dll.
Artikel ini telah dikemas kini dan mengandungi sumbangan dari Esther Vaati. Esther adalah pemaju perisian dan penyumbang kepada Envato Tuts.
Atas ialah kandungan terperinci Tulis ujian unit profesional di Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!