35 UnitTest框架 - 断言

一、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)

猜你喜欢

转载自blog.csdn.net/qq_46071165/article/details/129767784