2011-05-14 130 views
0


我已經通過了文檔,但並不理解python中真正意義上的單元測試。
我有一個測試代碼,任何人都可以告訴我如何對它進行unittestng?蟒蛇單元測試問題

a = 1 
b = 2 
def test(): 
    c = a + 2 
    if c > 5: 
    z = 7 
    else: 
    z = 8 
    answer = b + z 
    return answer 
+2

你的測試代碼總是做同樣的事情,所以單元測試將非常簡單:檢查test()返回它應該返回的內容。一個更實際的例子是如果test()帶兩個參數('test(a,b)')。在這種情況下,您可以嘗試使用幾個不同的參數,並檢查它是否在所有情況下返回期望值。 – 2011-05-14 21:54:45

+0

我不明白you.if可以說我通過一個變量d來測試並在answer = b + z + d中使用那個d。我想chk如果這個d不應該像字符串或浮動無效。我如何創建測試。請給我舉個例子吧。 – pinky 2011-05-15 06:39:13

+0

從你對這個問題的評論中,我覺得你應該先研究什麼是單元測試,然後再深入研究Python,然後再回顧一下你遇到的這個問題。 – 2011-05-15 10:36:35

回答

0

單元測試並不意味着不僅僅是自動化的各種功能在你的代碼輸出的檢查時,他們被賦予一定的值更。基本上,你只是想確保那些測試不會因爲改變事情而中斷。

+0

意味着如果我使用__name __ =='__ main__':,它會被稱爲單元測試嗎? – pinky 2011-05-15 06:39:45

+0

否。'__main__'技巧用於阻止模塊執行,如果您導入它們。 – 2011-05-15 10:35:06

+0

好的感謝信息 – pinky 2011-05-15 19:33:40

1

要測試你的test()方法,你應該創建一個這樣

import unittest 
from your_file import test 

class TestMethodTestCase(unittest.TestCase): 
    def test_01a(self): 
     """ test the test method""" 
     self.failUnlessEqual(9, test(a=4, b=2)) # here you write all the use case you need to be sure that your method is correctly doing the job 
     self.failUnlessEqual(10, test(a=1, b=2)) 
     self.failUnlessEqual(11, test(a=5, b=3)) 

if __name__=="__main__": 
    unittest.main() 

與test()方法是這樣定義的測試文件:

def test(a=1, b=2): 
    c = a + 2 
    if c > 5: 
    z = 7 
    else: 
    z = 8 
    answer = b + z 
    return answer 

,看一下python unittest documentation

+0

好的,我會檢查這一點,並在一段時間內回到你。謝謝 – pinky 2011-05-15 08:38:15

+0

嘿瓦特這10,9,8你過去了嗎?我們只通過功能參數然後那些? – pinky 2011-05-15 08:45:26

+0

failUnlessEqual()的第一個參數是測試方法的預期結果。 – 2011-05-15 09:16:49