【4-2】基于Python-unittest运用:unittest的断言

在测试过程中,执行用例完成以后,需要判断测试结果pass或者fail,则需应用到assert(断言)

assert用于判断一个表达式,在表达式条件为 false 的时候触发异常。    

 

1. 常见的断言方法:

​ 在python中的unittest标准测试库中断言的方法有很多,常用的断言方法:assertEqual、assertIn、assertTrue

同时,所有的断言方法都有一个msg参数,如果指定msg参数的值,则将该信息作为失败的错误信息返回。

序号断言方法断言描述
1 assertEqual(arg1, arg2, msg=None) 验证arg1=arg2,不等则fail
2 assertNotEqual(arg1, arg2, msg=None) 验证arg1 != arg2, 相等则fail
3 assertTrue(expr, msg=None) 验证expr是true,如果为false,则fail
4 assertFalse(expr,msg=None) 验证expr是false,如果为true,则fail
5 assertIs(arg1, arg2, msg=None) 验证arg1、arg2是同一个对象,不是则fail
6 assertIsNot(arg1, arg2, msg=None) 验证arg1、arg2不是同一个对象,是则fail
7 assertIsNone(expr, msg=None) 验证expr是None,不是则fail
8 assertIsNotNone(expr, msg=None) 验证expr不是None,是则fail
9 assertIn(arg1, arg2, msg=None) 验证arg1是arg2的子串,不是则fail
10 assertNotIn(arg1, arg2, msg=None) 验证arg1不是arg2的子串,是则fail
11 assertIsInstance(obj, cls, msg=None) 验证obj是cls的实例,不是则fail
12 assertNotIsInstance(obj, cls, msg=None) 验证obj不是cls的实例,是则fail

 

举例:unittest的断言,判断两个字典的数据是否相同

import unittest

data = {
    "user": "test2"
}


class TestCase(unittest.TestCase):

    def setUp(self):
        """每个case执行开始都执行一次"""
        print("用例开始")

    def tearDown(self):
        """每个case执行结束都执行一次"""
        print("用例结束")

    # 那如何让执行此类才执行一次呢?
    @classmethod
    def setUpClass(cls):
        print("--类开始--")

    @classmethod
    def tearDownClass(cls):
        print("--类结束--")

    # 以下为用例
    def test_case01(self):
        data1 ={
            "user":"test1"
        }
        try:
            # 判断两个字典的属于是否正确
            self.assertDictEqual(data1, data, msg="test_case01执行错误")
            print("test_case01执行成功")
        except:
            print("test_case01执行错误")

    def test_case02(self):
        data1 = {
            "user": "test2"
        }
        try:
            self.assertDictEqual(data1, data, msg="test_case02执行错误")
            print("test_case02执行成功")
        except:
            print("test_case02执行错误")


if __name__ == "__main__":
    unittest.main()

 

posted @ 2020-09-03 17:37  Yulisa  阅读(187)  评论(0)    收藏  举报
321312321321