https://www.jetbrains.com/help/pycharm/step-3-testing-your-first-python-application.htmlhtml
接上篇python
測試用例的價值再也不贅述,測試先行是最佳實踐,測試的覆蓋率,極限值等等也不展開,直接來看看在charm中如何建立使用測試用例app
首先在設置中選擇test runner dom
而後建立一個測試測試
右鍵,goto,testdebug
而後建立一個新的code
先測兩個方法htm
能夠看到一個新的測試已經建立好了:ip
右鍵運行,能夠看到失敗開發
快速推動,測試用例不本身寫,直接copy官網。以下:
import unittest from Car import Car class TestCar(unittest.TestCase): def setUp(self): self.car = Car() class TestInit(TestCar): def test_initial_speed(self): self.assertEqual(self.car.speed, 0) def test_initial_odometer(self): self.assertEqual(self.car.odometer, 0) def test_initial_time(self): self.assertEqual(self.car.time, 0) class TestAccelerate(TestCar): def test_accelerate_from_zero(self): self.car.accelerate() self.assertEqual(self.car.speed, 5) def test_multiple_accelerates(self): for _ in range(3): self.car.accelerate() self.assertEqual(self.car.speed, 15) class TestBrake(TestCar): def test_brake_once(self): self.car.accelerate() self.car.brake() self.assertEqual(self.car.speed, 0) def test_multiple_brakes(self): for _ in range(5): self.car.accelerate() for _ in range(3): self.car.brake() self.assertEqual(self.car.speed, 10) def test_should_not_allow_negative_speed(self): self.car.brake() self.assertEqual(self.car.speed, 0) def test_multiple_brakes_at_zero(self): for _ in range(3): self.car.brake() self.assertEqual(self.car.speed, 0)
而後運行一下,結果以下:
能夠看到,一共跑了9個測試方法,失敗了兩個。
9個測試方法測試兩個被測試類的方法,極限值也考慮到了,覆蓋的比較全面,這麼一測就測試問題來了。固然用做例子的bug一眼就能夠看到,修復起來也比較快,若是真實開發,比較複雜的狀況下,能夠debug下看看問題出如今那裏,這裏不贅述。
指的注意的是,能夠經過設置來自動運行測試,以下:
點擊 按鈕 後,若是對代碼進行改變後,測試就會自動執行。
能夠點擊來設置代碼修改與自動執行之間的時間間隔,以下:
測試用例的寫法能夠參考unittest的文檔:https://docs.python.org/2/library/unittest.html#