python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python单元测试

详解Python单元测试的两种写法

作者:什么都干的派森

python的两个单元测试包分别是 doctest 和 unittest,这两个包的使用起来各有长处,适用于不同的场景,这篇文章主要介绍了Python单元测试的两种写法,需要的朋友可以参考下

一、前言

python的两个单元测试包分别是 doctest 和 unittest,这两个包的使用起来各有长处,适用于不同的场景

二、实现

先写一个待测试的方法

def add(num1, num2):
    return num1 + num2

1.doctest

def add(num1, num2):
    """
    直接写在待测方法中
    
    >>> add(14, 5)
    19
    >>> add(14, 5) > 1
    True
    
    >>> add(20, 30, 70)
    Traceback (most recent call last):
        ...
    TypeError: add() takes 2 positional arguments but 3 were given
    """
    return num1 + num2
if __name__ == "__main__":
    import doctest
    doctest.testmod()

运行上面的代码什么都不会输出,因为预测结果全部正确,只有在预测结果错误的时候才会给提示
ps:

2.unittest

import unittest
# 引入上面的待测试方法
from src.main.add import add
class TestStatisticalFunctions(unittest.TestCase):
    def test_add(self):
        self.assertEqual(add(14, 5), 19)            # 断言 add(14, 5) 的结果为 19
        self.assertTrue(add(14, 5) > 1, True)       # 断言 add(14, 5) > 1 的结果为 True
        with self.assertRaises(TypeError):          # 断言 add(20, 30, 70) 抛出 TypeError 异常
            add(20, 30, 70)
if __name__ == '__main__':
    unittest.main()

同样,运行上面的代码什么都不会输出,因为预测结果全部正确,只有在预测结果错误的时候才会给提示

到此这篇关于Python单元测试的两种写法的文章就介绍到这了,更多相关Python单元测试内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文