首页 > 编程语言 >python单元测试unittest

python单元测试unittest

时间:2023-03-19 10:46:19浏览次数:52  
标签:python unittest 单元测试 print add test self def

快速上手

# 被测代码
def add_func(a, b):
    return a + b

# 测试代码
import unittest

class MyTest(unittest.TestCase):
    def test_add_func(self):
        # 使用assertEqual判断返回值是否相等
        self.assertEqual(add_func(1, 2), 3)

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

assert断言方法

assertEqual(a, b)
assertNotEqual(a, b)
assertTrue(x)
assertFalse(x)
assertIs(a, b)
assertIsNot(a, b)
assertIsNone(x)
assertIsNotNone(x)
assertIn(a, b)
assertNotIn(a, b)
assertIsInstance(a, b)
assertNotIsInstance(a, b)

组织测试代码

setUp()和 tearDown()

class MyTest(unittest.TestCase):
    def setUp(self) -> None:
        print("在每个测试方法执行前被调用,预制测试条件")

    def tearDown(self) -> None:
        print("每个测试方法执行后被调用,恢复测试前的状态")

    def test_add_func1(self):
        self.assertEqual(add_func(1, 2), 3)
        print("test test_add_func1")

    def test_add_func2(self):
        self.assertEqual(add_func(1, -1), 0)
        print("test test_add_func2")

setUpClass 和 tearDownClass

class MyTest(unittest.TestCase):
    @classmethod
    def setUpClass(cls) -> None:
        print("测试类开始前执行")
        return super().setUpClass()

    @classmethod
    def tearDownClass(cls) -> None:
        print("测试类结束后执行")
        return super().tearDownClass()

    def setUp(self) -> None:
        print("在每个测试方法执行前被调用,预制测试条件")

    def tearDown(self) -> None:
        print("每个测试方法执行后被调用,恢复测试前的状态")

    def test_add_func1(self):
        self.assertEqual(add_func(1, 2), 3)
        print("test test_add_func1")

    def test_add_func2(self):
        self.assertEqual(add_func(1, -1), 0)
        print("test test_add_func2")

参考教程 https://docs.python.org/3.9/library/unittest.html

标签:python,unittest,单元测试,print,add,test,self,def
From: https://www.cnblogs.com/rustling/p/17232574.html

相关文章

  • python有序字典在做题中的使用.
    66.两个链表的第一个公共结点  题目  提交记录  讨论  题解  视频讲解输入两个链表,找出它们的第一个公共结点。当不存在公共节点时,返回空......
  • 100道python基础题——(8)
    问题:编写一个程序,接受逗号分隔的单词序列作为输入,按字母顺序排序后按逗号分隔的序列打印单词。假设向程序提供以下输入:without,hello,bag,world则输出为:bag,hello,witho......
  • 100道python基础题——(9)
    多组输入问题:编写一个程序,接受一行序列作为输入,并在将句子中的所有字符大写后打印行。假设向程序提供以下输入:HelloworldPracticemakesperfect则输出为:HELLOWORLDP......
  • 100道python基础题——(7)
    问题:编写一个程序,以2位数字,X,Y作为输入,生成一个二维数组。数组的第i行和第j列中的元素值应该是i*j。注意:i=0,1..,X-1;j=0,1,­Y-1。例子假设程序有以下输入:......
  • Day 17 17.1 python之变量的作用域
    一、变量作用域变量的作用域Python是静态作用域,也就是说Python中,变量的作用域源于它在代码中的位置在不同的位置,可能有不同的命名空间。命名空间是变量作用域的体现......
  • pta python实验1-3
    7-1HelloWorld这是学习每种程序设计语言的第一个实例。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬输出Hell......
  • 使用python自动监控程序运行过程数据
    操作系统:CentOS7.6.1810_x64Python版本:2.7.5一、背景描述工作中会遇到需要监控程序运行过程数据的情况,比如定时执行监控的cmd并记录执行结果,本文提供一种实现方式......
  • [oeasy]python0111_字型码_字符字型编码_点阵字库_ascii演化
    编码进化回忆上次内容上次回顾了早期的英文字符点阵最小的3*5通用的5*7点阵字库逐渐规范化这些点阵字符的字型究竟是如何被存储的呢?......
  • python安装
    一、python安装1.windows下的python安装*下载安装包https://www.python.org/downloads/release/python-352/*安装默认安装路径:C:\python3......
  • Python操作pdf文件|pdfpiumbe&PyPDF2
    Python操作pdf文件1pdfpiumber库pdfpiumber是一个免费、开源的Python库,用于提取PDF文件中的文本和表格数据。它包括一个PDF解析器,可以找到和提取PDF文档中的文本和表格......