使用Unittest進行Python程式單元測試
在本文中,我們將學習使用Python 3.x(或更早版本)中提供的unittest模組進行軟體測試的基礎知識。它允許自動化測試,共享測試的設定和退出程式碼,以及為每個框架進行獨立測試。
在單元測試中,我們使用了各種各樣的面向物件概念。我們將在這裡討論一些主要使用的概念。
測試用例 (Testcase) − 它是一個根據給定的一組輸入做出特定響應的基類。我們使用unittest的基類“TestCase”來實現此操作。
測試套件 (Testsuite) − 用於將測試用例組合在一起並同時執行它們。
測試執行器 (Testrunner) − 它遵循基於結果的任務執行。它參與在執行任務後顯示結果。
測試裝置 (Testfixture) − 它作為相關環境中測試用例的基線。
現在讓我們來看一個基本的例子,看看單元測試是如何工作的。
示例
import unittest
class TestStringMethods(unittest.TestCase):
def test_upper(self):
self.assertEqual('TUTOR'.lower(), 'tutor')
def test_islower(self):
self.assertTrue('tutor'.islower())
self.assertFalse('Tutor'.islower())
if __name__ == '__main__':
unittest.main()輸出
... ------------------------------- Ran 2 tests in 0.000s OK

在這裡,我們以單繼承的形式擴充套件單元測試類。我們在這裡使用了assertEqual()、assertTrue()和assertFalse()等內建方法。
assertEqual() 用於將輸出與結果進行驗證/比較。
assertTrue() 用於驗證給定條件是否為真。
assertFalse() 用於驗證給定條件是否為假。
上述程式碼的輸出可以有三種形式
OK – 這表示所有生成的測試都已成功執行
FAIL – 這表示測試用例失敗,並引發AssertionError異常。
ERROR – 這表示測試引發異常/錯誤。
我們可以使用裝飾器 @unittest.skip(<reason>)
示例
import unittest
class TestString(unittest.TestCase):
@unittest.skip(“check skipped tests”)
def test_upper(self):
self.assertEqual('TUTOR'.lower(), 'tutor')
def test_islower(self):
self.assertTrue('tutor'.islower())
self.assertFalse('Tutor'.islower())
if __name__ == '__main__':
unittest.main()輸出
... ------------------------------------------ Ran 2 tests in 0.000s OK (skipped=2)
結論
在本文中,我們學習了使用Python 3.x(或更早版本)中Unittest模組進行Python單元測試。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP