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.