unittest單元測試

李博Garvin發表於2015-07-21

1.背景


到了公司發現,ut(單元測試)是非常重要的一部分,ut並不是完全是測試的同學完成,很多時候ut是需要開發的同學自己來做。研究了下python指令碼下unittest包的用法。

使用的時候要import unittest包,函式的傳入引數unittest.TestCase,主要結構包括:

setUp():初始化測試函式
tearDown():測試結束後的清理工作
若干測試函式以test為開頭


2.程式碼例項

需要測試的函式:
# -*- coding: UTF-8 -*-
'''
Created on 2015��7��21��

@author: aohai.lb
'''
class TestClass():
    def __init__(self):
        pass
    def sum(self,x,y):
        return x+y
    def sub(self):
        return 7

測試函式:
# -*- coding: UTF-8 -*-
'''
Created on 2015年7月21日

@author: aohai.lb
'''
import TestClass
import unittest

class test(unittest.TestCase):
    ## 初始化
    def setUp(self):
        self.myclass=TestClass.TestClass()
        pass
    
    def testsum(self):
        ##如果sum函式輸出錯誤,系那是test sum fail
        self.assertEqual(self.myclass.sum(1,2),3,'test sum fail')
    
    def testsub(self):
        self.assertEqual(self.myclass.sub(),8,'test sub fail ')
        
    def tearDown(self):
        pass
if __name__=='__main__':
    unittest.main()
        

在測試中,testsub函式我故意輸出錯誤的內容,看一下顯示的結果:
F.
======================================================================
FAIL: testsub (__main__.test)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\java\unittest\Test.py", line 21, in testsub
    self.assertEqual(self.myclass.sub(),8,'test sub fail ')
AssertionError: test sub fail 


----------------------------------------------------------------------
Ran 2 tests in 0.001s


FAILED (failures=1)
[Finished in 0.3s with exit code 1]


/********************************

* 本文來自部落格  “李博Garvin“

* 轉載請標明出處:http://blog.csdn.net/buptgshengod

******************************************/






相關文章