资讯专栏INFORMATION COLUMN

Python单元测试两种方法解答

89542767 / 214人阅读

  小编这这篇文章的主要目的,主要是给大家进行一个详解,解释一下关于Python中,单元格测试的一些具体方法,那么,测试的方法都有什么呢?下面小编就给大家详细的做出一个解答。


  一、前言


  python的两个单元测试包分别是doctest和unittest,这两个包的使用起来各有长处,适用于不同的场景


  doctest:直接写在方法体中,利用了python动态语言的特性,书写方式简单明了,前提是项目不要太大,如果项目复杂代码量大,再加上写在方法体中的单元测试,整体就会看起来有些臃肿,因此doctest适用于代码量不大的普通项目


  unittest:一般写在独立文件中,与spring的单元测试有点像,项目结构清晰,不过简单项目中测试一些小功能的话实属dark不必了


  二、实现


  先写一个待测试的方法
  def add(num1,num2):
  return num1+num2
  1.doctest
  def add(num1,num2):
  """
  直接写在待测方法中
  >>>add(14,5)
  19
  >>>add(14,5)>1
  True
  >>>add(20,30,70)
  Traceback(most recent call last):
  ...
  TypeError:add()takes 2 positional arguments but 3 were given
  """
  return num1+num2
  if __name__=="__main__":
  import doctest
  doctest.testmod()
  运行上面的代码什么都不会输出,因为预测结果全部正确,只有在预测结果错误的时候才会给提示
  ps:
  add(14,5)为测试方法,19为预测结果
  add(14,5)>1为测试方法,True为预测结果
  add(20,30,70)为测试方法,Traceback(most recent call last):为异常抛出的第一句话【错误原因】,TypeError:add()takes 2 positional arguments but 3 were given为异常抛出的最后一句话【异常类型:解释说明】,中间三个点省略了异常中的文件路径信息

  01.png

      2.unittest


  import unittest
  #引入上面的待测试方法
  from src.main.add import add
  class TestStatisticalFunctions(unittest.TestCase):
  def test_add(self):
  self.assertEqual(add(14,5),19)#断言add(14,5)的结果为19
  self.assertTrue(add(14,5)>1,True)#断言add(14,5)>1的结果为True
  with self.assertRaises(TypeError):#断言add(20,30,70)抛出TypeError异常
  add(20,30,70)
  if __name__=='__main__':
  unittest.main()


  同样,运行上面的代码什么都不会输出,因为预测结果全部正确,只有在预测结果错误的时候才会给提示


  关于这篇文章,小编就给大家介绍到这里了,希望可以给大家带来更多帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128241.html

相关文章

  • Python工程师必看的面试问题与解答(中)

    摘要:在中什么是迭代器在中,迭代器用于迭代一组元素,如列表之类的容器。中的生成器是什么实现迭代器的方法称为生成器。如何将数字转换为字符串要将数字转换为字符串,请使用内置函数。如果需要八进制或十六进制表示,请使用内置函数或。 showImg(https://segmentfault.com/img/bVbfztO?w=1024&h=1024);16)在Python中什么是迭代器? 在Pytho...

    xiao7cn 评论0 收藏0
  • 如何利用python读取excel表格?下文给大家详细解答

      小编写这篇文章的一个主要目的,主要就是给大家去做一个解答,接的内容主要是利用python去读取excel表格,那么,怎么才能快速的实现这个操作呢?下面就给大家详细解答下。  一、python读取excel表格数据  1、读取excel表格数据常用操作  importxlrd   #打开excel表格   data_excel=xlrd.open_workbook('data/datas...

    89542767 评论0 收藏0
  • container-as-a-service-0x01 -- 基于Docker的私有云&混合

    摘要:基于的私有云混合云构建方案苏依蜀黍是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的可移植的自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括虚拟机集群和其他的基础应用平台。 container-as-a-service-0x01 -- 基于Docker的私有云&混合云构建方案 By 苏依蜀黍 . 2016.06.07 what Docker是一...

    import. 评论0 收藏0
  • 2021年软件测试工具总结——单元测试工具

    摘要:单元测试框架作为的标准库,是其他单元测试框架的基础。可以和和配合使用编写单元测试。官网地址单元测试覆盖率工具单元测试中还需要用到代码覆盖率工具。代码覆盖率统计工具用来发现没有被测试覆盖的代码,完善单元测试的覆盖率。 在应用程序中,单元是具有一个或多个输入和单个输出的软件中最小可测试部分。单元...

    qingshanli1988 评论0 收藏0
  • Python 的模拟测试介绍

    摘要:接下来我们将介绍如何对对象的方法进行模拟测试。选项创建模拟测试接口我们可以在的构造函数中提供一个模拟测试实例,而不是模拟创建具体的模拟测试方法。 如何不靠耐心测试 通常,我们编写的软件会直接与那些我们称之为肮脏的服务交互。通俗地说,服务对我们的应用来说是至关重要的,它们之间的交互是我们设计好的,但这会带来我们不希望的副作用——就是那些在我们自己测试的时候不希望的功能。 比如,可能我们...

    BearyChat 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<