目录
3、assertEqual(expected,actual,msg=None)
4、assertNotEqual(excepted,actual,msg=None)
5、assertIn(member,container,msg=None)
6、assertNotIn(member,container,msg=None)
一、UnitTest断言介绍
1、什么是断言
-
使用代码自动判断测试程序执行结果与预期结果是否相符
-
卸载用例脚本中
2、断言的作用
-
提高测试效率
-
实现自动化测试(让脚本在无人值守状态下运行)
3、说明
-
UnitTest中提供了非常丰富的断言方法
-
复杂的断言方法在自动化测试中几乎使用不到,所以我们只需要掌握几个常用的即可
4、断言使用方式
-
断言方法已经在unittest.TestCase类中定义了,我们自定义的类已经继承了TestCase父类,所以在测试方法中直接调用父类中的断言方法即可
二、常用的UnitTest断言方法
-
assert:断言
-
msg=None,这个 msg 参数就是遇到异常后自定义输出信息
1、assertTrue(expr,msg=None)
-
expr:表达式
-
表达式结果为True,用例通过;表达式结果为False,用例不通过
2、assertFalse(expr,msg=None)
-
表达式结果为False,用例通过;表达式结果为True,用例不通过
3、assertEqual(expected,actual,msg=None)
-
Equal:相等
-
expected:预期结果
-
actual:实际结果
-
判断实际结果与预期结果是否相等,相等则用例通过,不相等则抛出异常,用例不通过
4、assertNotEqual(excepted,actual,msg=None)
-
NotEqual:不相等
-
判断实际结果与预期结果是否相等,相等则用例不通过,抛出异常;不相等则用例通过
5、assertIn(member,container,msg=None)
-
In:包含
-
member:预期结果
-
container:实际结果
-
判断预期结果是否包含在实际结果中,如果存在则用例通过;如果不存在则抛出异常,用例不通过
6、assertNotIn(member,container,msg=None)
-
NotIn:不包含
-
判断预期结果是否包含在实际结果中,如果存在则抛出异常,用例不通过;如果不存在则用例通过
7、示例代码1
#测试用例代码
import unittest
class TestAssert(unittest.TestCase):
def test_assert_01(self):
self.assertEqual(3, 3) #用例通过
def test_assert_02(self):
self.assertEqual(3,4) #用例不通过
def test_asser_03(self):
# self.assertIn('admin','欢迎 admin 用户登录') #用例通过
self.assertIn('admin', '欢迎 aaaadmin 用户登录') # 用例通过
# self.assertIn('admin', '欢迎 adminnnn 用户登录') # 用例通过
# self.assertIn('admin', '欢迎 addddmin 用户登录') # 用例不通过
#执行代码
import unittest
from assert01 import TestAssert
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestAssert))
runner = unittest.TextTestRunner()
runner.run(suite)
8、练习1
需求:
定义一个 tools 模块, 在这个模块中 定义 add 的方法,可以对两个数字求和,返回求和结果
书写用例, 对 add() 函数进行测试
1, 1, 2
1, 2, 3
3, 4, 7
4, 5, 9
#tools.py文件
def add(x,y):
return x+y
#测试add()函数的用例代码
import unittest
from tools import add
class TestAdd(unittest.TestCase):
def test_add_01(self):
num = add(1, 1)
self.assertEqual(2, num)
def test_add_02(self):
num = add(1, 2)
self.assertEqual(3, num)
def test_add_03(self):
num = add(3, 4)
self.assertEqual(7, num)
def test_add_04(self):
num = add(4, 5)
self.assertEqual(9, num)
#执行用例的suite代码
import unittest
from tools_case_assert import TestAdd
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestAdd))
runner = unittest.TextTestRunner()
runner.run(suite)