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()

运行结果:

测试都成功:

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

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

知识点

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

具体讲解参考如下:

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

以供参考

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值