'''
1.认识Assert 断言
断言的比较运算符号:assert可以使用比较运算:”==” “!=” ‘’<” “>” “>=” “<=”等符号来比较相等、不相等、小于、大于、大于等于和小于等于。
Assert 语法格式:
assert 1 ==1
assert 2+2 ==2*2
断言的作用:
1.检查文档
2.具有一定的判断的效果
3.防御性的编程
使用方法:
assertEqual(first,second,msg)其中first与second 进行比较,如果相等则通过;msg为失败的信息,选填。 断言assertNotEqual反正用就可以。
1.assertTrue 和 assertFalse
assertTrue :判断bool值为True,则pass
assertFalse: 判断bool值为False,则pass
'''
# assert 8>5,"not Ture" #正确没有任何操作
# assert 3>5,"not Ture" #错误抛出异常
'''
a="this is a string"
assert type(a)== int,"类型不一致"
assert type(a)== str,"类型不一致"
当断言正确的时候,不会输出,
反之错误,则输出异常信息
'''
'''
try...except:
用来引发异常
try:
print("请输入一个整数")
a=int(input())
print('值是:',a)
except:
print("您输入有误,请重新输入")
'''
# if 条件判断 TRUE执行 错误 else语句
'''
错误,异常,断言区别:
错误:代码运行前的语法或者逻辑错误,语法错误在执行前修改,逻辑错误无法修改
异常:
1.异常产生:检查到错误且解释器认为是异常,抛出异常
2.异常处理:截取异常,或略或者终止处理异常
3.断言:就是拿实际的结果和预期的结果相互比较,断言就是比的过程
'''
import unittest #导入单元测试框架
class TestStringMethods(unittest.TestCase):
'''
继承unittest下的TestCase
测试用例(testCase):是为了某个特殊目标而编制的一组测试输入,
执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
使用名称以字母开头的方法定义三个单独的测试 test。
此命名约定通知测试运行器哪些方法代表测试。
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 3.1
assertIsNot(a, b) a is not b
assertIsNone(x) x is None
assertIsNotNone(x) x is not None
assertIn(a, b) a in b 3.1
assertNotIn(a, b) a not in b
assertIsInstance(a, b) isinstance(a, b)
assertNotIsInstance(a, b) not isinstance(a, b)
'''
def test_upper(self):
#定义一个以test开头的方法会自动调用
#断言'foo'.upper() == 'FOO'
self.assertEqual('foo'.upper(), 'FOO')
def test_isupper(self):
#断言'FOO'全部是大写 是真的
self.assertTrue('FOO'.isupper())
#断言'Foo'全部是大写是假的
self.assertFalse('Foo'.isupper())
def test_split(self):
s = 'hello world'
#断言s.split()的结果与['hello', 'world']相等
self.assertEqual(s.split(), ['hello', 'world'])
# check that s.split fails when the separator is not a string
#检查。当分隔的不是字符串时,split失败 断言一个类型错误异常
with self.assertRaises(TypeError):
s.split(2)
if __name__ == '__main__':
unittest.main()