1 TestCase

一个TestCase的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,

包括测试环境的准备(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。单元

测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。

2 TestSuite

而多个测试用例集合在一起就是TestSuite,而且TestSuite也可以嵌套TestSuite。TestLoader是用来加载测试用例到TestSuite中的。

3 TextTestRunner

TextTestRunner是用来执行测试用例的,其中的run()会执行TestSuite/TestCase中的run(result)方法。测试的结果会保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。

4 Fixture

而对一个测试用例环境的搭建和销毁,是一个fixture。

案例:定义一个calculate类,然后用unittest进行测试;

#!/usr/bin/python3  class Math:       def __init__(self,a,b):     self.a = int(a)     self.b = int(b)

def add(self):     return self.a + self.b

测试代码:
#!/usr/bin/python3  from calculator import Math import unittest

class TestMath(unittest.TestCase):   def setUp(self):     print('test start')def test_add(self):     j = Math(5,10)     #self.assertEqual(j.add(),15)      self.assertEqual(j.add(),12)def tearDown(self):     print('test end')

if __name__ == '__main__':   suite = unittest.TestSuite()   suite.addTest(TestMath('test_add'))

 runner = unittest.TextTestRunner()   runner.run(suite)

执行结果;

Testing started at 16:39 ... C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\python.exe "D:\PyCharm Community Edition 2017.3.3\helpers\pycharm\_jb_unittest_runner.py" --path E:/Selenium/unittest/test_Math.py Launching unittests with arguments python -m unittest E:/Selenium/unittest/test_Math.py in E:\Selenium\unittest test start test end

Ran 1 test in 0.008s

FAILED (failures=1)

12 != 15

Expected :15 Actual   :12  <Click to see difference>

Traceback (most recent call last):   File "D:\PyCharm Community Edition 2017.3.3\helpers\pycharm\teamcity\diff_tools.py", line 30, in _patched_equals     old(self, first, second, msg)   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\unittest\case.py", line 829, in assertEqual     assertion_func(first, second, msg=msg)   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\unittest\case.py", line 822, in _baseAssertEqual     raise self.failureException(msg) AssertionError: 15 != 12

During handling of the above exception, another exception occurred:

Traceback (most recent call last):   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\unittest\case.py", line 59, in testPartExecutor     yield   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\unittest\case.py", line 605, in run     testMethod()   File "E:\Selenium\unittest\test_Math.py", line 13, in test_add     self.assertEqual(j.add(),12)

Process finished with exit code 1

因为12 !=15,所以报错。

转载于:https://www.cnblogs.com/holly-j/p/8448512.html

unittest核心要素相关推荐

  1. unittest里discover用法_unittest框架核心要素及应用

    1. unittest核心要素 unittest介绍 测试框架,不仅仅用于单元测试 python自动的测试包 用法和django.test.TestCase类似 1.1[知道]unittest介绍和核 ...

  2. 深度学习之核心要素:输入输出、目标函数、前向传播、后向传播、学习率、梯度下降

    深度学习之核心要素:输入输出.目标函数.前向传播.后向传播.学习率.梯度下降 目录 深度学习的学习过程 输入输出及隐层: 目标函数:

  3. 机器学习的核心要素是什么?它们分别作了什么工作?

    Machine Learning的核心要素为:模型.策略.算法 模型:模型定义了解空间.在监督学习中,模型就是要学习的条件概率分布或者决策函数.模型的解空间包含了所有可能的条件概率分布或者决策函数,因 ...

  4. 细数网站成功赢利须具备的四大核心要素

    2019独角兽企业重金招聘Python工程师标准>>> 面对互联网创业的成功者,草根站长依旧在独自奋力的打拼,为了互联网创业的梦想而努力,希望自己的网站最终能够成为一个为自己顺利赢利 ...

  5. 汤晓鸥谈深度学习三大核心要素:算法设计、高性能的计算能力以及大数据

    汤晓鸥谈深度学习三大核心要素:算法设计.高性能的计算能力以及大数据 2017-05-21 15:02:28    深度学习    0 0 0 昨日(5月20日),香港中文大学汤晓鸥教授莅临 2017C ...

  6. 产线数字化软件源码_数字化工厂规划的十大核心要素

    导读 在当前智能制造的热潮之下,很多企业都在规划建设智能工厂.众所周知,智能工厂的规划建设是一个十分复杂的系统工程,为了少走弯路,本文整理了在建设中要考虑的十个核心要素以及需要关注的重点维度. 数据的 ...

  7. 架构概述之架构演化、模式与核心要素

    如何打造一个高可用.高性能.易扩展.可伸缩且安全的应用系统?相信这是困扰着无数开发者的难题,在这里我们以一个网站为例,来讨论一下如何做好大型应用系统的架构设计. 架构演化发展历程 大型网站的技术挑战主 ...

  8. 审计文件服务器的5个核心要素

    https://blog.csdn.net/ITmoster/article/details/107670951 文件服务器审核是企业IT安全中一个必不可少的环节,任何的疏忽都可能会让您的企业遭受巨大 ...

  9. 数据质量管理的核心要素和技术原则

    "十三五",规划提出了国家的大数据战略,指出了企业实现以数字化驱动业务发展,实现数据开放共享,创新业务发展的新思路.现阶段大中型企业已经开始了数据化运营的实践.在这个环境和趋势中, ...

最新文章

  1. hle机器人_《英雄联盟》Deft加入HLE打野CaD续约Arthur加入
  2. 第三代:集成电路计算机
  3. 力士乐伺服电机编码器调零_力士乐伺服电机编码器故障维修来这里
  4. 如何更新mysql数据库字段_如何使用MySQL一个表中的字段更新另一个表中字段
  5. String Primitive和String Object
  6. Redis bgsave 线上分析
  7. C语言家谱管理程序,C语言实现家谱管理
  8. dismiss 多个viewController
  9. IS-IS hello 包结构及邻接关系的建立
  10. WinRAR v5.90 正式版简体中文汉化特别版本
  11. 汇编语言中sbb是什么意思_汇编语言的所有指令
  12. matlab里直线拟合,matlab如何拟合直线
  13. [Swift]添加暂无数据和暂无网络缺省页
  14. 一元线性拟合的matlab,基于MATLAB的一元线性回归分析
  15. Python-实现根据关键词获取网页内容
  16. WebAI.js:一个简单的网页前端 AI 模型部署工具
  17. 门控时钟、使能时钟的实现
  18. LT8618SX 是龙迅的低功耗版本 HDMI 发射器,其基于 ClearEdgeTM 技术
  19. AS部署失败,Device supports,but APK only supports...
  20. 软件需求工程五组工作日记——开篇:项目简介

热门文章

  1. linux tcp server开源,GitHub - 06linux/cellnet: 高性能,简单,方便的开源服务器网络库...
  2. linux php环境搭建 图文教程,linux php环境搭建教程
  3. 【CodeForces - 227B 】Effective Approach (STL,思维)
  4. 【POJ - 2349】【UVA - 10369】 Arctic Network(最小生成树求权值第k大的边)(内附两种算法)
  5. 中介者模式java_图解Java设计模式之中介者模式
  6. javaweb在线问卷系统_2020 最新流行的Java Web报表工具比对
  7. java找不到符号类socket,编译报错+解决方法:错误: 找不到符号
  8. php如何判断文件的内容,php 判断文件内容是否存在的方法
  9. android studio开源代码,Android Studio Set of source 代码源集
  10. Maven 3.0.5 安装和配置: