python-单元测试unittest

背景

最近在看《Python编程:从入门到实践》-埃里克·马瑟斯时,发现了之前学习python基础被忽略的一部分:测试。

基本示例

import unittest         # 导入测试库


class Employee():
    def __init__(self, last_name, first_name, annual_salary):
        self.last_name = last_name
        self.first_name = first_name
        self.annual_salary = annual_salary

    def showinfo(self):
        print(f"{self.first_name} {self.last_name}的年薪为:{self.annual_salary}")

    def give_raise(self, increment=5000):
        return int(self.annual_salary) + int(increment)


class TestEmployee(unittest.TestCase):          # 继承unittest.TestCase
    def setUp(self):
        """
        针对类Employee进行测试时,可使用setup()方法,进行创建对象,
        让我们只需创建这些对象一次,并在每个测试方法中使用它们。
        :return:
        """
        self.employee = Employee('yytest', 'x', '200000')
        self.employee.showinfo()

    def test_give_default_raise(self):
        """
        测试函数命名-必须以test开头,并有描述性指明针对某个函数进行的测试。如:test_give_default_raise
        :return:
        """
        fin_salary = self.employee.give_raise()
        self.assertEquals(fin_salary, 205000)

    def test_give_custom_raise(self):
        fin_salary = self.employee.give_raise(100000)
        self.assertEquals(fin_salary, 400000)


if __name__ == '__main__':
    """
    代码行unittest.main()让Python运行这个文件中的测试,即运行此py文件中所有test开头的方法。
    """
    unittest.main()

运行结果:

测试都成功:
python-单元测试unittest_第1张图片

修改断言函数内的值重新测试:

    def test_give_custom_raise(self):
        fin_salary = self.employee.give_raise(100000)
        self.assertEquals(fin_salary, 400000)

python-单元测试unittest_第2张图片

知识点

1、断言方法:用来核实得到的结果是否与期望的结果一致。

具体讲解参考如下:

Python断言及常用断言函数总结_函数断言ture怎么写_Python 学习者的博客-CSDN博客

python-单元测试unittest_第3张图片

以供参考

本文只是简单的介绍了unittest最基本的使用方法,在查找资料的时候找到了一些更详细的介绍,链接如下:

【进阶Python】第九讲:单元测试之unittest - 知乎 (zhihu.com)

Python中的单元测试框架:使用unittest进行有效测试 - 知乎 (zhihu.com)

你可能感兴趣的:(单元测试)