python unittest之断言及示例
来源:互联网 发布:c语言求数组最小值 编辑:程序博客网 时间:2024/05/17 06:18
# _*_ coding:utf-8 _*_
import unittest
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
class demoTest(unittest.TestCase):
def test1(self):
self.assertEqual(4 + 5,9)
def test2(self):
self.assertNotEqual(5 * 2,10)
def test3(self):
self.assertTrue(4 + 5 == 9,"The result is False")
def test4(self):
self.assertTrue(4 + 5 == 10,"assertion fails")
def test5(self):
self.assertIn(3,[1,2,3])
def test6(self):
self.assertNotIn(3, range(5))
def test7(self):
self.assertAlmostEqual(22.0/7,3.14)
if __name__ == '__main__':
unittest.main()
python unintest单元测试框架提供了一整套内置的断言方法。
如果断言失败,则抛出一个AssertionError,并标识该测试为失败状态
如果异常,则当做错误来处理 注意:以上两种方式的区别
如果成功,则标识该测试为成功状态
下面我们看下在unittest框架中定义了哪几类断言方法:
基本的Boolean断言,即:要么True,要么False的验证
简单比较断言,例如比较a,b两个变量的值
复杂断言
基本断言方法
基本的断言方法提供了测试结果是True还是False。所有的断言方法都有一个msg参数,如果指定msg参数的值,则将该信息作为失败的错误信息返回。
看一下上述断言简单的代码示例
# _*_ coding:utf-8 _*_
import unittest
import sysreload(sys)sys.setdefaultencoding("utf-8")
class demoTest(unittest.TestCase): def test1(self): self.assertEqual(4 + 5,9)
def test2(self): self.assertNotEqual(5 * 2,10)
def test3(self): self.assertTrue(4 + 5 == 9,"The result is False") def test4(self): self.assertTrue(4 + 5 == 10,"assertion fails") def test5(self): self.assertIn(3,[1,2,3]) def test6(self): self.assertNotIn(3, range(5))
if __name__ == '__main__': unittest.main()
将上述代码保存至demoAssert.py中,运行以下命令
python demoAssert.py
具体结果请看运行结果即可,这里不做一一分解了。
比较断言
unittest框架提供的第二种断言类型就是比较断言。
下面我们看下各种比较断言:
assertAlmostEqual (first, second, places = 7, msg = None, delta = None)
验证first约等于second。 palces: 指定精确到小数点后多少位,默认为7
assertNotAlmostEqual (first, second, places, msg, delta)
验证first不约等于second。 palces: 指定精确到小数点后多少位,默认为7
注: 在上述的两个函数中,如果delta指定了值,则first和second之间的差值必须≤delta
assertGreater (first, second, msg = None)
验证first > second,否则fail
assertGreaterEqual (first, second, msg = None)
验证first ≥ second,否则fail
assertLess (first, second, msg = None)
验证first < second,否则fail
assertLessEqual (first, second, msg = None)
验证first ≤ second,否则fail
assertRegexpMatches (text, regexp, msg = None)
验证正则表达式regexp搜索匹配的文本text。 regexp:通常使用re.search()
assertNotRegexpMatches (text, regexp, msg = None)
验证正则表达式regexp搜索不匹配的文本text。 regexp:通常使用re.search()
下面看一个简单的示例
# _*_ coding:utf-8 _*_
import unittest
import math
import re
import sysreload(sys)sys.setdefaultencoding("utf-8")
class demoTest(unittest.TestCase): def test1(self): self.assertAlmostEqual(22.0/7,3.14)
def test2(self): self.assertNotAlmostEqual(10.0/3,3)
def test3(self): self.assertGreater(math.pi,3) def test4(self): self.assertNotRegexpMatches("Tutorials Point (I) Private Limited", "Point")
if __name__ == '__main__': unittest.main()
将上述代码保存至demoAssert2.py中,运行以下命令
python demoAssert2.py
具体结果请看运行结果即可,这里不做一一分解了。
复杂断言
unittest框架提供的第三种断言类型,可以处理元组、列表、字典等更复杂的数据类型。
下面看下具体的示例代码:
# _*_ coding:utf-8 _*_
import unittest
import sysreload(sys)sys.setdefaultencoding("utf-8")
class demoTest(unittest.TestCase): def test1(self): self.assertListEqual([2,3,4], [1,2,3,4,5])
def test2(self): self.assertTupleEqual((1*2,2*2,3*2), (2,4,6))
def test3(self): self.assertDictEqual({1:11,2:22},{3:33,2:22,1:11}) if __name__ == '__main__': unittest.main()
将上述代码保存至demoAssert2.py中,运行以下命令
python demoAssert3.py
具体结果请看运行结果即可,这里不做一一分解了。
- python unittest之断言及示例
- Selenium2+python自动化56-unittest之断言(assert)
- python测试之unittest
- python测试之unittest
- Python 之unittest框架
- Python之unittest
- python笔记之unittest
- python单元测试之unittest
- python的unittest单元测试框架断言整理汇总
- appium-unittest框架中的断言
- 第34节:unittest断言
- python进阶之Unittest简介(1)
- python进阶之Unittest用法(2)
- python进阶之Unittest写case(3)
- python unittest 之mock学习笔记
- Python学习之单元测试unittest详解
- Python接口测试之unittest框架
- Python之unittest单元测试(翻译)
- CentOS 7 配置JS语言开发环境(JavaScript)
- 4.20 学习总结
- 微信app开发支付接口相关
- TCP连接异常终止分析
- Linux下的proc目录详解
- python unittest之断言及示例
- 面向对象
- 蓝桥杯JAVA语言B组_立方变自身
- Java的输入与输出
- 过河问题
- 再论大型机:『今日头条』激辩实录
- 4.11 N!
- 【WebLogic使用】2.在Eclipse中添加WebLogic
- 测试工具