您好,登錄后才能下訂單哦!
本篇文章為大家展示了使用python3.6怎么實現一個單元測試功能,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
1、編寫Student類:
#!/usr/bin/env python3 # -*- coding: utf-8 -*- class Student(object): def __init__(self,name,score): self.name = name self.score = score def get_grade(self): if self.score >= 80 and self.score <= 100: return 'A' elif self.score >= 60 and self.score <= 79: return 'B' elif self.score >= 0 and self.score <= 59: return 'C' else: raise ValueError('value is not between 0 and 100')
2、編寫一個測試類TestStudent,從unittest.TestCase繼承:
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import unittest from student import Student class TestStudent(unittest.TestCase): def test_80_to_100(self): s1 = Student('Bart',80) s2 = Student('Lisa',100) self.assertEqual(s1.get_grade(),'A') self.assertEqual(s2.get_grade(),'A') def test_60_to_80(self): s1 = Student('Bart',60) s2 = Student('Lisa',79) self.assertEqual(s1.get_grade(),'B') self.assertEqual(s2.get_grade(),'B') def test_0_to_60(self): s1 = Student('Bart',0) s2 = Student('Lisa',59) self.assertEqual(s1.get_grade(),'C') self.assertEqual(s2.get_grade(),'C') def test_invalid(self): s1 = Student('Bart',-1) s2 = Student('Lisa',101) with self.assertRaises(ValueError): s1.get_grade() with self.assertRaises(ValueError): s2.get_grade() #運行單元測試 if __name__ == '__main__': unittest.main()
3、運行結果如下:
4、行單元測試另一種方法:在命令行通過參數-m unittest直接運行單元測試,例如:python -m unittest student_test
最后對使用unittest模塊的一些總結:
編寫單元測試時,需要編寫一個測試類,從unittest.TestCase
繼承
對每一個類測試都需要編寫一個test_xxx()
方法
最常用的斷言就是assertEqual()
另一種重要的斷言就是期待拋出指定類型的Error,eg:with self.assertRaises(KeyError):
另一種方法是在命令行通過參數-m unittest直接運行單元測試:eg:python -m unittest student_test
最簡單的運行方式是xx.py的最后加上兩行代碼:
if __name__ == '__main__': unittest.main()
上述內容就是使用python3.6怎么實現一個單元測試功能,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。