测试教程网.unittest教程.8. 断言异常

From: http://www.testclass.net/pyunit/assert_raise/

背景

我们有时候需要断言一些方法会抛出异常,这些异常需要符合我们的预期。

代码

新建test_exception.py文件,内容如下

import unittest

class DivZeroTestCase(unittest.TestCase):

    def test_should_raise_exception(self):
        with self.assertRaises(ZeroDivisionError):
            1 / 0

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

运行及结果

$ python test_exception.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

我们能学到什么

  • 上面的例子断言了当0作为除数的时候会抛出ZeroDivisionError
  • 断言异常是有套路的,使用with语句加assertRaises,assertRaises的参数中传入预期的异常(这些异常可能需要先import进来),在with的子句中放上会抛出异常的语句或表达式

原文地址:https://www.cnblogs.com/Raul2018/p/9466849.html

时间: 2024-10-11 00:00:05

测试教程网.unittest教程.8. 断言异常的相关文章

测试教程网.unittest教程.7. 各种断言方法

From: http://www.testclass.net/pyunit/assert/ 背景 unittest支持各种断言方法. 断言列表 官方文档 方法 检查点 assertEqual(a, b) a == b assertNotEqual(a, b) a != b assertTrue(x) bool(x) is True assertFalse(x) bool(x) is False assertIs(a, b) a is b assertIsNot(a, b) a is not b

测试教程网.unittest教程.3. 实例: 测试弱密码

From: http://www.testclass.net/pyunit/test_example_1/ 背景 考虑这样一个测试弱密码的实例,这个我们在pytest相关教程中也有过描述. 我们需要判断用户的密码中包含简单密码,规则是这样的,密码必须至少6位,满足6位的话判断用户的密码不是password123或者password之类的弱密码. 对于如下的测试数据,我们要如何使用unittest来进行相关测试呢? [ {"name":"jack","pas

测试教程网.unittest教程.1. 基本概念

From:http://www.testclass.net/pyunit/basic_concept/ unittest是python自带的单元测试框架,有时候又被称为"PyUnit",是python版本的JUint实现. 该框架的作者是 Kent Beck和Erich Gamma,感谢祖师爷赏饭吃. 在学习使用unittest库之前,我们需要了解一下unittest库的一些重要概念: test fixture: 代表了用例执行前的准备工作和用例执行之后的清理工作.比如在用例执行前创建

前端测试框架Jest系列教程 -- Expect(验证)

写在前面 在编写测试时,我们通常需要检查值是否满足某些条件,Jest中提供的expect允许你访问很多“Matchers”,这些“匹配器”允许您验证不同的东西. Expect 可以验证什么 Jest中提供了如下的验证方法: expect(value) expect.extend(matchers) expect.anything() expect.any(constructor) expect.arrayContaining(array) expect.assertions(number) ex

《语义网基础教程》学习笔记(二)

二.RDF概述(参考http://zh.transwiki.org/cn/rdfprimer.htm) 1.本体: 一个本体是一个概念体系(conceptualization)的显式的形式化规范. 一般来说,一个本体形式地刻画一个论域.一个典型的本体由有限个术语及它们之间的关系组成. ★在万维网这个环境中,本体提供了对给定领域的一种共识.这种共识对于消除术语差别是必要的. 通过把各自的术语差异映射到一个公共的本体之间的直接映射,可以消除这些术语差异. 不管采用哪种方案,本体都支持语义可共用性(s

《语义网基础教程》学习笔记(一)

一.XML概述 1.有效(valid)的XML文档:遵守了XML文档的基本规则,并使用DTD或Schema定义了语义约束,而且也完全遵守了DTD或Schema所定义的语义约束的XML文档 2.XML声明部分的encoding属性值应该与保存该文档所使用的字符集相同.如果需要让XML支持中文,应该注意以下几点: ①保存文件时使用支持中文的字符集 ②XML声明部分的encoding属性应该与保存该文件时所使用的字符集相同 3.XML元素里的多个属性之间是无序的,因此同一个元素不可包含多个同名的属性,

python基础教程_学习笔记10:异常

异常 什么是异常 Python用异常对象来表示异常情况.遇到错误后,会引发异常.如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行: >>> 1/0 Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> 1/0 ZeroDivisionError: integer division or modulo by

从unity3d官网下载教程

http://unity3d.com/learn/tutorials/projects/tanks-tutorial 官网的教程提供的下载链接https://www.assetstore.unity3d.com/en/#!/content/46209/ 根本无法下载 最后谷歌了下,发现需要在unity中打开,然后在里面的asset store中下载 坑爹了,下载速度超级慢.我等了好久 绿色的import按钮,可以导入 下载后的路径在 C:\Users\Administrator\AppData\

HTML5的 CSS3简要教程-html5教程网

Web 设计师可以使用HTML4和CSS2.1完成一些很酷的东西.我们可以在不使用陈旧的基于table布局的基础上完成文档逻辑结构并创建内容丰富的网站.我们可以在不使用内联<font>和<br>标签的基础上对网站添加漂亮而细腻的风格样式.事实上,我们目前的设计能力已经让我们远离了那个可怕的浏览器战争时代.专有协议和那些充满闪动.滚动和闪烁的丑陋网页.虽然我们现在已经普遍使用了HTML4和CSS2.1,但是我们还可以做得更好!我们可以重组我们代码的结构并能让我们的页面代码更富有语义化