Python高级用法:使用unittest进行单元测试

这篇具有很好参考价值的文章主要介绍了Python高级用法:使用unittest进行单元测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

Python中含有一个单元测试模块unittest,我们可以使用其中的工具来测试代码。在编写测试用例后,可以查看一系列输入是否得到了预期的输出。单元测试专注于测试软件单元,软件单元可以被理解为应用程序代码的最小可测试部分。

代码

import unittest


def is_prime(number):
    if number < 0 or number in (0, 1):
        return False
    for element in range(2, number):
        if number % element == 0:
            return False
    return True


class MyTests(unittest.TestCase):
    def test_is_prime(self):
        self.assertTrue(is_prime(5))
        self.assertTrue(is_prime(7))
        self.assertFalse(is_prime(8))
        self.assertFalse(is_prime(0))
        self.assertFalse(is_prime(1))
        self.assertFalse(is_prime(-1))
        self.assertFalse(is_prime(-3))
        self.assertFalse(is_prime(-6))


if __name__ == "__main__":
    unittest.main()

在代码中我们需要测试的是一个数字是否为质数的函数is_prime。使用unittest进行单元测试时首先要创建一个unittest.TestCase的子类(这里是MyTests),随后调用unittest.main()后会自动调用这个子类当中的类方法去进行测试。

在类方法中使用的assertTrueassertFalse是一种断言的方式,用来判断返回值是否为True或False。其他的断言方式有

方法 用途
assertEqual(a, b) 核实a == b
assertNotEqual(a, b) 核实a != b
assertTrue(x) 核实x 为True
assertFalse(x) 核实x 为False
assertIn(item , list ) 核实 item 在 list 中
assertNotIn(item , list ) 核实 item 不在 list 中

运行结果如下:

Ran 1 test in 0.001s

OK

旧的使用方式

在以往的Python中,有这样一个约定,测试模块提供一个test_suite函数,该函数返回一个TestSuite实例,当模块被命令提示符调用或被测试运行器使用时,在__main__部分会调用它。

import unittest


def is_prime(number):
    if number < 0 or number in (0, 1):
        return False
    for element in range(2, number):
        if number % element == 0:
            return False
    return True


class PrimesTests(unittest.TestCase):
    def test_is_prime(self):
        self.assertTrue(is_prime(5))
        self.assertTrue(is_prime(7))
        self.assertFalse(is_prime(8))
        self.assertFalse(is_prime(0))
        self.assertFalse(is_prime(1))
        self.assertFalse(is_prime(-1))
        self.assertFalse(is_prime(-3))
        self.assertFalse(is_prime(-6))


class OtherTests(unittest.TestCase):
    def test_true(self):
        self.assertTrue(True)


def test_suite():
    """构建测试套件"""
    suite = unittest.TestSuite()
    suite.addTests(unittest.makeSuite(PrimesTests))
    suite.addTests(unittest.makeSuite(OtherTests))
    return suite


if __name__ == '__main__':
    unittest.main(defaultTest='test_suite')

在上述代码中构建了一个测试套件test_suite,其中构建了一个unittest.TestSuite()的类的实例化,随后将两个待测试的方法添加到这个实例化的对象中。

运行结果文章来源地址https://www.toymoban.com/news/detail-806089.html

Ran 2 tests in 0.001s

OK

到了这里,关于Python高级用法:使用unittest进行单元测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 系统学习Python——单元测试unittest:执行测试用例

    分类目录:《系统学习Python》总目录 相关文章: · 单元测试unittest:框架结构 · 单元测试unittest:测试固件 · 单元测试unittest:编写测试用例 · 单元测试unittest:执行测试用例 · 单元测试unittest:用例执行次序 · 单元测试unittest:内置装饰器 · 单元测试unittest:命令行执行测

    2024年02月06日
    浏览(38)
  • Python接口自动化之unittest单元测试

    以下主要介绍unittest特性、运行流程及实际案例。 一、单元测试三连问 1、 什么是单元测试?   按照阶段来分,一般就是单元测试,集成测试,系统测试,验收测试。单元测试是对 单个模块 、 单个类 或者 单个函数 进行测试。 将访问接口的过程封装在函数里面; 接口测试就

    2024年02月07日
    浏览(51)
  • 系统学习Python——单元测试unittest:内置装饰器

    分类目录:《系统学习Python》总目录 相关文章: · 单元测试unittest:框架结构 · 单元测试unittest:测试固件 · 单元测试unittest:编写测试用例 · 单元测试unittest:执行测试用例 · 单元测试unittest:用例执行次序 · 单元测试unittest:内置装饰器 · 单元测试unittest:命令行执行测

    2023年04月13日
    浏览(49)
  • 使用vscode进行python的单元测试,提高开发效率

    单元测试在我们的开发过程中非常有必要,它可以验证实现的一个函数是否达到预期。以前在学校写代码时,都是怼一堆代码,然后直接运行,如果报错再一步步调试,这样大部分时间都浪费在调试工作上。工作后发现大家都使用单元测试,这样做其实更规范,也提高了开发

    2024年02月03日
    浏览(61)
  • 使用Python进行接口性能测试:从入门到高级

    在今天的网络世界中,接口性能测试越来越重要。良好的接口性能可以确保我们的应用程序可以在各种网络条件下,保持流畅、稳定和高效。Python,作为一种广泛使用的编程语言,为进行接口性能测试提供了强大而灵活的工具。 接下来的教程中,我们将探讨如何使用Python进行

    2024年02月08日
    浏览(39)
  • 利用Python进行数据清洗与预处理:Pandas的高级用法【第147篇—Pandas的高级用法】

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在数据科学和机器学习领域,数据清洗和预处理是至关重要的步骤。Pandas库作为Python中最受欢迎的数据处理工具之一,提供了强大的功能来处

    2024年04月09日
    浏览(107)
  • Python自动化测试框架之unittest使用详解

    unittest是Python自动化测试框架之一,提供了一系列测试工具和接口,支持单元测试、功能测试、集成测试等多种测试类型。unittest使用面向对象的思想实现测试用例的编写和管理,可以方便地扩展和定制测试框架,支持多种测试结果输出格式 unittest 是python 的单元测试框架,它

    2024年02月07日
    浏览(53)
  • Python学习之UnitTest【使用,生成HTML测试报告】

    目录 1、 UnitTest 1.1 TestCase 1.2 TestSuite 1.3 TextTestRunner 1.4 TestLoader 2、Fixture 2.1 方法级别 2.2 类级别 2.3 模块级别 2.4 总结 3、断言 3.1 UnitTest 常用断言方法 3.2 使用方式 4、参数化 4.1 安装 类库 4.2 使用 5、跳过 6、生成HTML测试报告 UnitTest 是 Python 自带的一个单元测试框架,用它来做

    2023年04月15日
    浏览(47)
  • vscode上对python进行单元测试

    1 在settings.json中添加如下 -s后的参数代表启动路径 -p 代表测试文件pattern 2 创建测试文件 as_test.py 注意函数名要以\\\'test_\\\'开头

    2024年01月20日
    浏览(44)
  • python接口自动化测试 —— unittest框架suite、runner详细使用

    测试套件,理解成测试用例集 一系列的测试用例,或测试套件,理解成测试用例的集合和测试套件的集合 当运行测试套件时,则运行里面添加的所有测试用例 测试运行器 用于执行和输出结果的组件 使用测试套件时,测试用例的执行顺序可以自定义,按照添加的顺序执行 有

    2024年03月16日
    浏览(88)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包