IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Python测试代码 -> 正文阅读

[开发测试]Python测试代码

?name_function.py

def get_formatted_name(first,last):
    """生成整洁的姓名。"""
    full_name = f"{first} {last}"
    return full_name.title()

?用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("\nPlease give me a last name: ")
    if last == 'q':
        break

    formatted_name = get_formatted_name(first,last)
    print(f"\tNeatly formatted name:{formatted_name}")

单元测试和测试用例

? ? ? ? Python 标准库中的模块unittest提供了代码测试工具。单元测试用于核实函数的某个方面没有问题。测试用例是一组单元测试,它们一道核实函数在各种情形下的行为都符合要求。良好的测试用例考虑到了函数可能收到的各种输入,包含针对所有这些情形的测试。全覆盖的测试用例包含一整套单元测试,涵盖了各种可能的函数使用方式。

? ? ? ? 要为函数编写测试用例,可先导入模块unittest和要测试的函数,再创建一个继承unittest,TestCase的类,并编写一系列方法对函数行为的不同方面进行测试。

import unittest
from name_function import get_formatted_name

class NamesTestCase(unittest.TestCase):
    """测试name_function.py"""
    def test_first_last_name(self):
        """能够正确地处理像Janis Joplin这样的姓名吗?"""
        formatted_name = get_formatted_name('janis','joplin')
        self.assertEqual(formatted_name,'Janis Joplin')
if __name__ == '__main__':
    unittest.main()

? ? ? ??首先,导入了模块unittest和要测试的函数get_formatted_name()。创建了一个名NamesTestCase的类,用于包含一系列针对的get_formatted_name()的单元测试。这个类可以随命名,但最好让它看起来与要测试的函数相关并包含Test字样。这个类必须继承unittest.TestCase类,这样Python才知道如何运行你编写的测试。
? ? ? ? NamesTestCase?只包含一个方法,用于测试get_formatted_name()的一个方面。将该方法命名为test_first_last_name(),因为要核实的是只有名和姓的姓名能否被正确格式化。运行test_name_function.py时,所有以test_打头的方法都将自动运行。在这个方法中,调用了要测过的函数。在本例中,使用实参'janis'和'joplin'调用?get_formatted_name(),并将结果赋给变量formatted_name。
? ? ? ?使用了?unittest类最有用的功能之一:断言方法。断言方法核实得到的结果是否与期望的结果一致。在这里,我们知道?get_formatted_name()应返回名和姓首字母大写且之间有一个空格的姓名,因此期望?formatted_name的值为Janis?Joplin。为检查是否确实如此,我们语用unittest的方法assertEqual(),并向它传递formatted_name和'Janis?Joplin'。代码行

self.assertEqual(formatted_name,?'Janis?Joplin')

的意思是:“将formatted_name的值与字符串‘Janis?Joplin'比较。如果它们相等,那么万事大吉;如果它们不相等,就告诉我一声!”
? ? ? ? 我们将直接运行这个文件,但需要指出的是,很多测试框架都会先导入测试文件再运行。导人文件时,解释器将在导入的同时执行它。if代码块检查特殊变量__name__,这个变量是在程序执行时设置的。如果这个文件作为主程序执行,变量__name__将被设置为’__main__。在这里,调用unittest.main()来运行测试用例。如果这个文件被测试框架导入,变量__name__的值将不是‘__main__’,因此不会调用unittest.main()。

? ? ? ? 测试结果如下:

Ran 1 test in 0.003s

OK

未完待续

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章           查看所有文章
加:2021-08-08 13:37:32  更:2021-08-08 13:37:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 8:08:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码