python-unittest,使用断言进行代码自测
程序员文章站
2022-07-12 12:08:49
...
1.assertEqual和assertNOEqual
import unittest
from test.equation import oneEquation, twoEquation, test1, test2, aa, test3
class TestFkMath(unittest.TestCase): # 继承unittest.TestCase类
def testAssertEqual(self):
self.assertEqual(oneEquation(2, 6), -3, msg='结果不一致')
# oneEquation(2, 6)是需要测试的函数,-3是自己预期的结果,如果测试结果和自己的预期不一致则会提示‘结果不一致’
'''
assertEqual(参数1,参数2,mag='测试不通过时的描'),参数1和参数2值相等,则测试用过
assertNOEqual(参数1,参数2,mag='测试不通过时的描') 参数1和参数2值不相等,则测试用过
'''
2.assertTrue和assertFalse
def testAssertTrue(self):
self.assertTrue(oneEquation(2, 6) == -3, msg='执行结果不为True')
'''
assertTrue(参数1,mag='测试不通过时的描'), 参数1是True通过测试
assertFalse(参数1,mag='测试不通过时的描'), 参数1是False通过测试
'''
3.assertIs和assertNotIs
def testAssertIs(self):
t = '1da'
self.assertIs(test1(), t, msg='对象不一致')
'''
assertIs(参数1,参数2,msg='测试不通过时的描述') id地址一样则测试通过
assertNotIs(参数1,参数2,msg='测试不通过时的描述') id地址不一样则测试通过
为什么使用元组作为test1()返回值的时候assertIs测试是通不过的,有没有大神指教,
test1()不在当前文件,如果在同一文件就能通过,字符串和数字不管是否在同一文件都能通过。
数字和字符串是不是有一个类似公共池的东西,而元组没有这个东西,
'''
4.assertIsNone和assertIsNotNone
def testAssertIsNone(self):
self.assertIsNone(None, msg='对象不为None')
'''
assertIsNone(参数,msg='测试不通过时的描述') 参数为None是测试通过
assertIsNotNone(参数,msg='测试不通过时的描述') 参数不为None时测试通过
'''
5.assertIsInstance
def testAssertIsInstance(self):
self.assertIsInstance(aa(),aa,msg='参数一不是参数二的实例')
'''
assertIsInstance(参数1,参数2,msg='测试不通过时的描述') 参数一是参数二的实例测试通过
assertNotIsInstance(参数1,参数2,msg='测试不通过时的描述') 参数一不是参数二的实例测试通过
'''
6.assertRaises
def testAssertRaises(self):
self.assertRaises(ZeroDivisionError, test3, 3, 0)
# 判断以3,0作为test3的两个参数会出现ZeroDivisionError异常,如果没有异常则不会继续往下执行
with self.assertRaises(ZeroDivisionError): # 判断他下面的代码会有异常出现,如果没有异常则不会继续往下执行
2/0
with self.assertRaises(ValueError): # 判断他下面的代码会有ValueError出现
twoEquation(9, 4, 3)
7.
def testAssertCountEqual(self):
r1, r2 = twoEquation(1, -3, 2)
t = [r1, r2] # [2.0,1.0]
self.assertCountEqual(t, (1.0, 2.0), "求解出错")
# 并没有出现异常,说明只判断列元素是否一致,并不需要数据类型也一样t是列表,(1.0, 2.0)是元组,对元素的位置也没有要求
8.使用 if__name__== "__main__":运行程序
if __name__ == "__main__":
unittest.main()
我的学习代码,已经上传了,有兴趣的可以下载看下 学习代码
上一篇: stack模型融合
下一篇: 模型融合———预测贷款用户是否会逾期
推荐阅读
-
java使用DOM对XML文档进行增删改查操作实例代码
-
使用bcompiler对PHP文件进行加密的代码
-
在SQL中使用convert函数进行日期的查询的代码
-
使用Vue.observable()进行状态管理的实例代码详解
-
在Android系统中使用gzip进行数据传递实例代码
-
python使用Apriori算法进行关联性分析(代码实例)
-
使用shell脚本对Nginx日志进行切分的示例代码
-
flask中使用SQLAlchemy进行辅助开发的代码
-
使用Python进行QQ批量登录的实例代码
-
使用php的fork进行父子进程代码编写,你至少需要对linux fork有这几点基础的理解。--- 记一次组内同学的fork问题排查