python与assert报错断言
assert前言
assert内部判断为FALSE时,才会执行后面的msg。
assert断言有一个很好用的包:unittest
固定的格式:
- class类里面传入参数unittest.TestCase
- if name == ‘main’:后面要有unittest.main()
关于断言assert
1.输出结果:先输出函数里面要求输出的内容,输出内容以…FFF开头;接着输出assert的判断信息
2.只需在最后运行“unittest.main()”,有很多的class需要诊断,都会一次性输出诊断内容
if name == ‘main’:
unittest.main()
3.如果assert执行了msg,则assert后面的内容不再运行
完整代码展示
例子来源于网络,侵删
# =============================================================================
# 关于断言assert
# 1.输出结果:先输出函数里面要求输出的内容,输出内容以...FFF开头;接着输出assert的判断信息
# 2.只需在最后运行“unittest.main()”
# 有很多的class需要诊断,都会一次性输出诊断内容
# if __name__ == '__main__':
# unittest.main()
# 3.如果assert执行了msg,则assert后面的内容不再运行
# =============================================================================
# coding:utf-8
import unittest
import sys
class Test(unittest.TestCase):
def test01(self):
'''判断 a == b '''
a = 1
b = 1
self.assertEqual(a, b)
print("\ntest01运算结果:",a+b)
def test02(self):
'''判断 a in b '''
a = "hello"
b = "hello world!"
self.assertIn(a, b)
def test03(self):
'''判断 a is True '''
a = True
self.assertTrue(a)
def test04(self):
'''失败案例'''
a = "上海-悠悠"
b = "yoyo"
self.assertEqual(a, b)
print(a+b)
# if __name__ == "__main__":
# unittest.main()
# =============================================================================
# 关于断言assert
# 例子:assert 判断句,如果是false时返回信息,
class TestModes(unittest.TestCase):
def testassert(self):
print("这是testassert第一步")
self.assertTrue('linux' in sys.platform,"该代码只能在 Linux 下执行")
# assert ('linux' in sys.platform), "该代码只能在 Linux 下执行"
print("结束")
# if __name__ == '__main__':
# unittest.main()
# =============================================================================
# unit test case
class TestStringMethods(unittest.TestCase):
# test function to test equality of two value
def test_negative(self):
firstValue = "geeks"
secondValue = "gfg"
# error message in case if test case got failed
message = "First value and second value are not equal !"
# assertEqual() to check equality of first & second value
self.assertEqual(firstValue, secondValue, message)
if __name__ == '__main__':
unittest.main()