python测试代码

学习目标

  • 如何使用模块unittest中的工具为函数和类编写测试
  • 如何编写继承unittest.TestCase的类,以及如何编写测试方法,以核实函数和类的行为符合预期
  • 如何使用setUp()来根据类高效地创建实例并设置其属性,以便在类的所有测试方法中都可以使用它们

1. 测试函数

要学习测试,得要有测试的代码。下面是简单的函数,它接收名和姓并返回整洁的姓名。

name_function.py

def get_formatted_name(first, last):
    """生成整洁的姓名"""
    full_name = first + ' ' + last
    return full_name.title()

函数get_formatted_name()将名和姓合并成姓名,在名和姓中添加一个空格,并将它们的首字母都大写。编写一个使用这个函数的程序names.py,让用户输入名和姓,并显示全名。

names.py

from name_function import get_formatted_name

print("Enter 'q' at any time to quit.")
while True:
    first = input('\nPlease give me a first name:')
    if first == 'q':
        break
    last = input('Please give me a last name:')
    if last == 'q':
        break
    formatted_name = get_formatted_name(first, last)
    print("\tNeatly formatted name:" + formatted_name + ".")
 

模拟用户输入名和姓,可以看到全名,以下是程序的运行结果:

Enter 'q' at any time to quit.

Please give me a first name:janis
Please give me a last name:joplin
	Neatly formatted name:Janis Joplin.

Please give me a first name:q

从上述输出可知,合并的全名正确。现在假如我们需要修改函数,使其还能够处理中间名。同时不破坏只有名和姓的处理方式。为此,我们需要修改函数后都进行测试:运行程序names.py,输入Janis Joplin这样的姓名,但这样太繁琐了。所幸python提供了一种自动化测试函数的高效方式。倘若我们对函数进行自动化测试,就能始终信心满满,确信函数能够正确的工作。

1.1 单元测试和测试用例

python标准库中的模块unittest提供了代码测试工具。单元测试用于核实函数的某个方面没有问题;测试用例是一组单元测试。全覆盖式测试用例包括一整套单元测试,涵盖了各种可能的函数使用方式。通常,最初只要对代码的重要行为编写测试即可。

1.2 可通过的测试

以下是一个只包含一个方法的测试用例,它检查函数能否正确工作。

test_name_function.py

import unittest
from name_function import get_formatted_name


class NameTestCase(unittest.TestCase):
    """测试name_function.py"""
    def test_firs
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值