断言和简单unittest单元测试的入门代码整理


'''
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()

猜你喜欢

转载自www.cnblogs.com/pythonyeyu/p/10529087.html