码迷,mamicode.com
首页 > 其他好文 > 详细

unittest

时间:2019-12-08 20:18:45      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:测试的   ==   Fix   一起   说明   构造   run方法   main   testcase   

unittest

简介

unittest是python自带的单元测试框架

 

重要概念

1)test fixture

用于初始化和清理测试数据及环境

2)test case

测试用例,是测试的最小单元,一般用来检查一组输入的相应是否符合预期,

3)test suite

测试套件,是测试用例或测试套件的组合,一般用来把需要一起执行的测试用例组合到一起

4)test runner

用于运行测试用例并返回结果

 

主要作用

(1)提供用例组织代码与执行

 当有大量测试用例时,要考虑其扩展性与维护性,考虑用例的规范与组织,使测试更加规范和简单

(2)提供丰富的比较方法

(3)提供丰富的日志

 

案例

来看一个例子

cal.py

class Calculator:
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def add(self):
        return self.a + self.b

    def sub(self):
        return self.a - self.b

 

test.py

import unittest
from cal import Calculator

class TestCal(unittest.TestCase):
    def setUp(self):
        print(Test begin...)
        self.cal = Calculator(2, 3)

    def tearDown(self):
        print(Test end...)

    def test_add(self):
        res = self.cal.add()
        self.assertEqual(res, 5)

    def test_sub(self):
        res = self.cal.sub()
        self.assertEqual(res, -1)

if __name__ == __main__:
    #构造测试集
    suite = unittest.TestSuite()
    suite.addTest(TestCal(test_add))
    suite.addTest(TestCal(test_sub))

    runner = unittest.TextTestRunner()
    runner.run(suite)

说明:setUp方法在一个测试用例执行前执行,一般用来初始化变量,生成测试数据,打开浏览器等操作

tearDown方法在一个测试用例执行完成后执行,一般用来清除测试数据,关闭文件,关闭浏览器等操作

unittest要求测试方法必须以‘test‘开头,如test_add, test_sub

unittest.TestSuite()中的addTest()方法向测试套件中添加测试用例

unittest.TextTestRunner()类中的run方法用来运行测试套件中的测试用例。

如果想默认运行当前测试文件下的所有测试用例,直接可以用unittest.main()方法,main方法查找测试用例有两个规则:

(1)测试类必须继承unittest.TestCase

(2)测试用例的方法必须以‘test’开头,如test_add

 

unittest

标签:测试的   ==   Fix   一起   说明   构造   run方法   main   testcase   

原文地址:https://www.cnblogs.com/marton/p/10993324.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!