unittest--python单元测试模块(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ManyPeng/article/details/78059274

unittest是python中的单元测试模块,类似于java中的junit包,下面就简单介绍一下这个模块的使用方法

首先定义一个计算器类:calculator.py,其中有一个加法方法add

class Calculator:
    def __init__(self, a, b):
        self.a = int(a)
        self.b = int(b)
    
    def add(self):
        return self.a + self.b

接下来我们编写另外一个文件(单元测试代码与被测试代码分离开):testadd.py

from calculator import Calculator
import unittest


class TestAdd(unittest.TestCase):
    def setUp(self):
        print "test case start"

    def tearDown(self):
        print "test case end"

    def test_add(self):
        s = Calculator(1, 2)
        self.assertEqual(s.add(), 3)

    def test_add2(self):
        s = Calculator(10, 20)
        self.assertEqual(s.add(), 30)


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

执行上述文件就会自动运行TestAdd类中的test_add和test_add2方法,在Pycharm中执行的结果如下:

可以看到test case start和test case end分别被打印了两次,这是由于在每个测试用例执行前,都会调用一次setUp方法用于初始化测试环境以及前置工作,每次测试用例执行后,自动调用tearDown方法恢复测试环境以及其他垃圾回收等工作。在本例中,在执行test_add和test_add2前后分别执行了这两个方法,所以会有上图所示的结果。

Pycharm自动识别出这是一个单元测试的程序,结果中显示OK,ALL 2 tests passed,表示有两个测试用例,且都通过。如果有不通过的测试用例,会有红色展示。

猜你喜欢

转载自blog.csdn.net/ManyPeng/article/details/78059274