Unittest原理及基础规则介绍

unittest基本原理

  • unittest是python自带的测试框架
  • unittest是python的标准测试库

四大组件

  • test case:测试用例,方法命名基于test_开头,测试用例自行排序执行,排序规则A-Z,a-z,0-9
  • test fixture:设置前置条件(setup),后置条件(teardown),每个测试用例方法执行前后都要执行这两个方法
  • test suite:测试套件,批量执行用例集,套件运行需要结合运行器(htmltestrunner/texttestrunner)
  • test runner:运行器,通过runner的run方法去调用执行测试用例集

unittest语法规则

  • 用import unittest导入unittest模块
  • 定义一个继承自unittest.TestCase的测试用例类,如class xxx(unittest.TestCase)
  • 即如果定义了则会在每个测试case执行前先执行setUp方法,执行完毕后执行tearDown方法。
  • 用例必须名必须以test开头,否则unittest不能识别
  • 成功是​​.​​​失败是​​F​​​,出错是​​E​
  • 一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符
  • 调用unittest.main()启动测试
# -*- coding: utf-8 -*-
# @Author : 码上开始

import unittest

class TestHC(unittest.TestCase):

def test01(self):
print("用例1")

def test02(self):
print("用例2")

def add(self):
# 当前用例不会被执行
print("用例3")

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

# 运行结果
..
Ran 2 tests in 0.000s
OK
用例1
用例2

unittest常用断言方法

方法

用途

assertEqual(a, b)

核实 a == b

assertNotEqual(a, b)

核实 a != b

assertTrue(x)

核实 x 为 True

assertFalse(x)

核实 x 为 False

assertIn( item , list )

核实 item 在 list 中

assertNotIn( item , list )

核实 item 不在 list 中

如果对软件测试、接口测试、自动化测试、持续集成、面试经验。感兴趣可以进到893694563,群内会有不定期的分享测试资料。还会有技术大牛,业内同行一起交流技术