unittest单元测试框架和断言
一、unittest单元测试框架简介
1、导入unittest模块
import unittest
2、定义测试类
class Login(unittest.TestCase):
3、前置条件
def setUp(self): u'''没有前置条件可以写pass''' pass
4、测试case加断言
def test01(self): #测试用例必须以test开头 print("执行测试用例01") result = '1' self.assertTrue(result) #断言result是不是True
5、后置条件
def tearDown(self): u'''没有后置条件可以写pass''' pass
6、运行主函数
if __name__ == '__main__': unittest.main()
示例:
#导入unittest模块 import unittest class Login(unittest.TestCase): def setUp(self): u'''没有前置条件可以写pass''' pass def test01(self): #测试用例必须以test开头 print("执行测试用例01") result = '1' self.assertTrue(result) #断言result是不是True def tearDown(self): u'''没有后置条件可以写pass''' pass if __name__ == '__main__': unittest.main()
二、断言
unittest常用的断言方法
1、assertEqual(self, first, second,msg=None)
def test02(self):#判断两个参数是否相等 print("执行测试用例02") result1 = '1' result2 = '2' self.assertEqual(result1,result2,msg="%s不等于%s"%(result1,result2))
2、assertNotEqual(self, first, second,msg=None)
def test03(self):#判断两个参数是否不相等 print("执行测试用例03") result1 = '1' result2 = '2' self.assertNotEqual(result1,result2,msg="%s等于%s"%(result1,result2))
3、assertIn(self, member, container,msg=None)
def test04(self):#判断一个参数是否包含另一个参数 print("执行测试用例04") result1 = '1' result2 = '21' self.assertIn(result1,result2,msg="%s不包含%s"%(result2,result1))
4、assertNotIn(self, member,container, msg=None)
def test05(self):#判断一个参数是否不包含另一个参数 print("执行测试用例05") result1 = '1' result2 = '2' self.assertNotIn(result1,result2,msg="%s包含%s"%(result2,result1))
5、assertTrue(self, expr, msg=None)
def test06(self): #测试一个参数是否为真 print("执行测试用例06") result = '' self.assertTrue(result,msg="%s不是True"%result)
6、assertFalse(self, expr, msg=None)
def test07(self):#判断一个参数是否不包含另一个参数 print("执行测试用例07") result = '' self.assertFalse(result,msg="%s不是False"%(result))
7、assertIsNone(self, obj, msg=None)
def test08(self):#判断一个参数是否不包含另一个参数 print("执行测试用例08") result = None self.assertIsNone(result,msg="%s不是None"%(result))
8、assertIsNotNone(self, obj,msg=None)
def test09(self):#判断一个参数是否不包含另一个参数 print("执行测试用例09") result = '123' self.assertIsNotNone(result,msg="%s是None"%(result))
示例:
#导入unittest模块 import unittest class Login(unittest.TestCase): def setUp(self): u'''没有前置条件可以写pass''' print("开始执行") # pass def test01(self): #测试用例必须以test开头 print("执行测试用例01") result = '1' self.assertTrue(result) #断言result是不是True def test02(self):#判断两个参数是否相等 print("执行测试用例02") result1 = '1' result2 = '1' self.assertEqual(result1,result2,msg="%s不等于%s"%(result1,result2)) def test03(self):#判断两个参数是否不相等 print("执行测试用例03") result1 = '1' result2 = '2' self.assertNotEqual(result1,result2,msg="%s等于%s"%(result1,result2)) def test04(self):#判断一个参数是否包含另一个参数 print("执行测试用例04") result1 = '1' result2 = '21' self.assertIn(result1,result2,msg="%s不包含%s"%(result2,result1)) def test05(self):#判断一个参数是否不包含另一个参数 print("执行测试用例05") result1 = '1' result2 = '2' self.assertNotIn(result1,result2,msg="%s包含%s"%(result2,result1)) def test06(self): #测试一个参数是否为真 print("执行测试用例06") result = '1' self.assertTrue(result,msg="%s不是True"%result) def test07(self):#判断一个参数是否不包含另一个参数 print("执行测试用例07") result = '' self.assertFalse(result,msg="%s不是False"%(result)) def test08(self):#判断一个参数是否不包含另一个参数 print("执行测试用例08") result = None self.assertIsNone(result,msg="%s不是None"%(result)) def test09(self):#判断一个参数是否不包含另一个参数 print("执行测试用例09") result = '123' self.assertIsNotNone(result,msg="%s是None"%(result)) def tearDown(self): u'''没有后置条件可以写pass''' print("结束...") # pass if __name__ == '__main__': unittest.main()
PS:unittest的执行顺序,先执行setUp,然后执行测试用例test*(测试用例是按照名称顺序执行),最后执行tearDown。