PyCharm使用-step 3(建立測試用例)

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下看看問題出如今那裏,這裏不贅述。

指的注意的是,能夠經過設置來自動運行測試,以下:

點擊 按鈕 icon toggleAutoTest後,若是對代碼進行改變後,測試就會自動執行。

能夠點擊cogwheel blue with arrow來設置代碼修改與自動執行之間的時間間隔,以下:

測試用例的寫法能夠參考unittest的文檔:https://docs.python.org/2/library/unittest.html#

相關文章
相關標籤/搜索