unittest框架(二)

unittest使用步骤

1.导入unittest模块
2.定义一个继承自unittest.TestCase的测试用例类,如class xxx(unittest.TestCase):
3.定义setUp和tearDown,如果定义了则会在每个测试case执行前先执行setUp方法,执行完毕后执行tearDown方法。
4.定义测试用例,名字以test开头,unittest会自动将test开头的方法放入测试用例集中。
5.一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。
6.调用unittest.main()启动测试,或实例化runner对象执行测试集、测试函数
7.如果测试未通过,则会显示e,并给出具体的错误(此处为程序问题导致)。如果测试失败则显示为f,测试通过为.,如有多个testcase,则结果依次显示。

示例

import unittest


class TestAdd(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        """setUpClass为类的初始化方法,在整个类运行前执行只执行一次"""
        print('setUpClass')

    def setUp(self):
        """为测试方法的初始化,每个text函数运行前执行一次"""
        self.a = 20
        self.b = 10
        print('setUp')

    def tearDown(self):
        """清理函数,和setUp类似,每个text函数执行后执行一次"""
        print('tearDown')

    @classmethod
    def tearDownClass(cls):
        """和setUpclass类似,在调用整个类测试方法完成后执行一次"""
        print('tearDownClass')

    def test_add(self):
        """验证加法"""
        result = self.a + self.b
        self.assertEqual(result, 30)
        print('test_add')

    def test_sub(self):
        """验证减法"""
        result = self.a - self.b
        self.assertEqual(result, 10)
        print('test_sub')


if __name__ == "__main__":
    unittest.main()
  • 在pycharm中右键运行的位置不同,结果也不同
  • 想要完整运行,鼠标放在最后一行代码的位置,再右键运行
  • unittest默认加载脚本的顺序是:根据ASCII码的顺序加载,数字与字母的顺序为:0-9,A-Z,a-z。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容