2011-05-14 137 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