標籤:mod str dong strong code __init__ nbsp 空格 tle
單元測試是用來對一個模組、一個函數或者一個類來進行正確性檢驗的測試工作
使用unittest模組做單元測試
1)對函數進行測試
下面是一個簡單的函數,它接收名和姓,返回整潔的姓名:
name_function.py
def get_formatted_name(first, last): full_name = first + ‘ ‘ + last return full_name.title()
函數get_formatted_name將名和姓組成一個完整的名字,並在名和姓之間添加一個空格,同時將首字母大寫,再返回結果。
單元測試這樣寫:
test_name_function.py
import unittestfrom name_function import get_formatted_nameclass NamesTestCase(unittest.TestCase): ‘‘‘ test_function Begin‘‘‘ def test_first_last_name(self): formatted_name = get_formatted_name(‘du‘,‘xiaodong‘) self.assertEqual(formatted_name,‘Du Xiaodong‘)
unittest.main()
需要注意的是,1.引入了unittest模組並且NamesTestCase需要繼承unittest.TestCase類。2.所有的測試函數都需要是test_function開頭,並且需要在代碼最後執行unittest.main()
這樣測試案例就會自動執行,如果你的測試正確,執行python test_name_function.py,顯示如下:
----------------------------------------------------------------------Ran 1 test in 0.000sOK
2)對類進行測試
這裡寫一個類Employee,其中__init__()接收姓名和年薪,其中give_raise()這個方法是加薪,預設加薪5000。
Employee.py
class Employee(): def __init__(self,name,salary): self.name = name self.salary = salary def give_raise(self,money = 5000): self.salary += money
測試類別test_Employee.py
import unittestfrom Employee import Employeeclass TestEmployee(unittest.TestCase): def setUp(self): self.employee = Employee(‘Du Xidong‘, 100000) def test_raise(self): self.employee.give_raise(10000) self.assertEqual(110000,self.employee.salary)unittest.main()
這裡需要指出的是setUp()這個方法類構造的時候會被執行,然後運行 python test_Employee.py會得到如下的結果:
----------------------------------------------------------------------Ran 1 test in 0.001sOK
總結
1、單元測試類必須繼承unit.TestCase類,2、測試函數必須以test_function開頭,3、使用斷言assertEqual或者其他單元具體查看unittest module中的斷言方法assertIn(item,list)等
Python使用單元測試