iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >unittest断言的使用
  • 259
分享到

unittest断言的使用

2023-06-02 05:06:21 259人浏览 薄情痞子
摘要

断言使用我们可以直接在测试用例里面添加unittest框架自带的断言(也就相当于判断),断言方法提供了测试结果是True还是False,所有的断言方法都有一个msg参数,如果指定msg参数的值,则将该信息作为失败的错误信息返回;如果断言失败

断言使用

  • 我们可以直接在测试用例里面添加unittest框架自带的断言(也就相当于判断),断言方法提供了测试结果是True还是False,所有的断言方法都有一个msg参数,如果指定msg参数的值,则将该信息作为失败的错误信息返回;

  • 如果断言失败则抛出一个AssertionError,并标识该测试为失败状态;如果成功,则标识该测试为成功状态;如果异常,则当做错误来处理;

先来看一个实例,在一个测试类MyTestCase中添加多个测试方法和断言

from unittest import TestCase, main, skipclass MyTestCase(TestCase):    def setUp(self):        print('setUp')    def tearDown(self):        print('tearDown')    def test_print1(self):        print('第一个测试用例')        # unittest框架自带的断言,如果不相等,直接抛出异常,相等什么都不做        self.assertEqual(200, 200, '测试失败')    def test_print2(self):        print('第二个测试用例')    def test_print3(self):        print('第三个测试用例')if __name__ == '__main__':    main()========输出========:setUp第一个测试用例tearDownsetUp第二个测试用例tearDownsetUp第三个测试用例tearDown

这里有三个测试用例,每个测试用例开始之前都先执行了setUp方法,每个测试用例之后都执行了tearDown方法。如果我们想要忽略某个测试用例不执行,要怎么做?比如忽略第三个测试用例,只需要在第三个测试用例之前加上skip装饰器:

@skip('do not need test_print3')    def test_print3(self):        print('第三个测试用例')

skip装饰器

  • 我们可以使用unitest.skip装饰器跳过不需要的测试用例,@unittest.skip(reason)表示无条件跳过测试用例,reason是用来说明原因的;

  • @unittest.skipIf(conditition,reason):condititon为true时跳过测试用例;

  • @unittest.skipunless(condition,reason):condition为False时跳过测试用例;

之前我们学习了setup方法和setUpClass方法,会在每个测试用例的前后都执行一遍,那如果我们只想要在所有测试用例的前后执行一遍,也就是在整个类中只执行一遍要怎么办呢,我们可以使用setUpClass方法和tearDownClass方法:

from unittest import TestCase, main, skipclass MyTestCase(TestCase):    @claSSMethod    def setUpClass(cls):        print('setUpClass')    @classmethod    def tearDownClass(cls):        print('tearDownClass')    def test_print1(self):        print('第一个测试用例')        # unittest框架自带的断言,如果不相等,直接抛出异常,相等什么都不做        self.assertEqual(200, 200, '测试失败')    def test_print2(self):        print('第二个测试用例')    @skip('do not need test_print3')    def test_print3(self):        print('第三个测试用例')if __name__ == '__main__':    main()==========输出===========setUpClass第一个测试用例第二个测试用例tearDownClass

setUpClass和tearDownClass的使用

  • setup方法和teardown方法在每次执行一个测试用例时都会重新执行一遍,所以要想在整个类中只执行一遍可以用setUpClass和tearDownClass方法;

  • setUpClass:需要添加@classmethod 装饰器,在一个类中只会在所有测试用例运行前调用一次;

  • tearDownClass:需要添加@classmethod 装饰器,在所有测试用例运行后调用一次;

引入测试用例集,将测试用例与测试集合分开

  • 首先可以先在一个文件中写好测试用例模块,然后在另一个文件中导入这个模块,再使用unittest.TestSuite类创建测试套件,然后使用这个类的addTest() 方法将需要被测试的测试用例添加到测试套件中,最后使用unittest.TextTestRunner类中的run()方法来运行suite所组装的测试用例;
  • 测试用例模块
from unittest import TestCasefrom unittest import skipfrom unittest import main as main_methodclass MyTestCase(TestCase):    @classmethod    def setUpClass(cls):        print('setUpClass')    @classmethod    def tearDownClass(cls):        print('tearDownClass')    def test_print1(self):        print('第一个测试用例')        self.assertEqual(200, 200, '测试失败')    def test_print2(self):        print('第一个测试用例')    @skip('do not need test_print3')    def test_print3(self):        print('第一个测试用例')if __name__ == '__main__':    main_method()
  • 测试集模块
from test1 import MyTestCasefrom unittest import TestSuite, TextTestRunnersuite = TestSuite()# 在测试用例集中添加测试用例, 只添加两个测试的方法suite.addTest(MyTestCase('test_print1'))suite.addTest(MyTestCase('test_print3'))if __name__ == '__main__':    # 创建测试runner,执行测试用例集    runner = TextTestRunner()    runner.run(suite)=========输出=============setUpClass第一个测试用例tearDownClass

我们运行这段代码,只有第一个测试用例输出,因为我们只将第一个和第三个测试用例加入到测试集中,所有第二个测试用例不会执行,而我们在第三个测试用例前面机上了skip装饰器会跳过此测试用例,所有第三个也不会执行啦。

将待测试函数、测试用例、测试用例集分开

  • 将待测试函数、测试用例、测试用例集分别放在不同的文件中,先在测试用例中导入待测试函数,然后使用断言判断函数是否正确,接着在测试用例集中创健测试套件,且将测试用例加入套件里面,最后运行;
  • 测试函数
def add(x, y):    return x + ydef sub(x, y):    return x - y
  • 测试用例
from unittest import TestCasefrom unittest import skipfrom unittest import main as main_methodfrom add_sub import add, subclass MyTestCase(TestCase):    @classmethod    def setUpClass(cls):        print('setUpClass')    @classmethod    def tearDownClass(cls):        print('tearDownClass')    def test_print1(self):        ret = 1 + 2        result = add(1, 2)        self.assertEqual(result, ret, 'test_print1测试失败')    def test_print2(self):        print('第二个测试用例')    @skip('do not need test_print3')    def test_print3(self):        print('第三个测试用例')if __name__ == '__main__':    main_method()
  • 测试用例集
from test import MyTestCasefrom unittest import TestSuite, TextTestRunnersuite = TestSuite()# 在测试用例集中添加测试用例suite.addTest(MyTestCase('test_print1'))suite.addTest(MyTestCase('test_print2'))suite.addTest(MyTestCase('test_print3'))if __name__ == '__main__':    # 创建测试runner,执行测试用例集    runner = TextTestRunner()    runner.run(suite)========输出=========setUpClass第一个测试用例第二个测试用例tearDownClass

参考:https://www.9xkd.com/user/plan-view.html?id=4822012440

--结束END--

本文标题: unittest断言的使用

本文链接: https://www.lsjlt.com/news/229094.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • unittest断言的使用
    断言使用我们可以直接在测试用例里面添加unittest框架自带的断言(也就相当于判断),断言方法提供了测试结果是True还是False,所有的断言方法都有一个msg参数,如果指定msg参数的值,则将该信息作为失败的错误信息返回;如果断言失败...
    99+
    2023-06-02
  • Python中unittest的断言方法详解
    目录断言方法:方法有: 下面是做的例子,后边是运行结果:总结断言方法:         是unitte...
    99+
    2024-04-02
  • Python中的Unittest基本使用
    前言: Unittest又名单元测试,主要用于测试自己写的代码的正确性和完备性,也方便自己和他人对代码的维护。在软件开发过程中,测试驱动开发的理念是一种好的开发习惯。 例如现在我们写...
    99+
    2024-04-02
  • Python实战之unittest使用详
    一 unittest是什么?unittest是python内置的单元测试框架,具备编写用例、组织用例、执行用例、输出报告等自动化框架的条件。 使用unittest前需要了解该框架的五个概念: 即test case,test suite,te...
    99+
    2023-01-31
    实战 Python unittest
  • python中unittest库怎么使用
    unittest是Python中的一个单元测试框架,用于编写和运行测试。下面是使用unittest库的一些基本方法: 导入uni...
    99+
    2023-10-24
    python unittest
  • Pytest断言的具体使用
    目录assert断言方法异常断言Excepiton检查断言装饰器Pytest使用的断言是使用python内置的断言assert。Python assert(断言)用于判断一个表达式,...
    99+
    2023-02-07
    Pytest断言
  • pytest之assert断言的具体使用
    背景 本文总结使用pytest编写自动化测试时常用的assert断言。 说明 本文将从以下几点做总结: 为测试结果作断言 为断言不通过的结果添加说明信息 ...
    99+
    2024-04-02
  • python的断言方法怎么使用
    Python中的断言方法是assert语句,用于在代码中检测某个条件是否为真,如果为假,则引发AssertionError异常。使用...
    99+
    2023-05-25
    python的断言 python
  • Golang类型断言的具体使用
    目录一,如何检测和转换接口变量的类型二,类型判断:type-switch一,如何检测和转换接口变量的类型 在Go语言的interface中可以是任何类型,所以Go给出了类型断言来判断...
    99+
    2023-03-08
    Golang 类型断言
  • Python unittest有哪些使用方法
    小编给大家分享一下Python unittest有哪些使用方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python有哪些常用库python常用的库:1.requesuts;2.scrapy;3.pillow;4.tw...
    99+
    2023-06-14
  • 如何在Python中使用unittest和ddt
    这篇文章给大家介绍如何在Python中使用unittest和ddt,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。unittest 没有自带数据驱动功能。所以如果使用unittest,同时又想使用数据驱动,那么就可以使用...
    99+
    2023-06-06
  • go语言类型断言怎么使用
    本篇内容主要讲解“go语言类型断言怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“go语言类型断言怎么使用”吧!在go语言中,类型断言是一个使用在接口值上的操作,用于检查接口类型变量所持有...
    99+
    2023-07-05
  • java断言assert怎么使用
    Java中的断言(assert)是一种用于在程序中进行自我验证的语句。它用于在程序中检查代码是否满足某些条件,如果条件不满足,则会抛...
    99+
    2023-09-23
    java assert
  • python使用unittest测试接口步奏的方法
    小编给大家分享一下python使用unittest测试接口步奏的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!这次给大家带来...
    99+
    2024-04-02
  • 怎么使用PHP中的断言函数
    这篇文章将为大家详细讲解有关怎么使用PHP中的断言函数,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一起学习PHP中断言函数的使用原来一直以为断言相关的函数是 PHPUnit 这些单元测试组件提供的,在阅...
    99+
    2023-06-15
  • PHP中断言函数的使用详解
    目录assert() 断言函数assert_options() 及相对应的 php.ini 中的参数配置总结原来一直以为断言相关的函数是 PHPUnit 这些单元测试组件提供的,在阅...
    99+
    2024-04-02
  • Golang类型断言如何使用
    这篇文章主要介绍了Golang类型断言如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Golang类型断言如何使用文章都会有所收获,下面我们一起来看看吧。一,如何检测和转换接口变量的类型在Go语言的int...
    99+
    2023-07-05
  • Python中的Unittest框架的用法
    本篇内容主要讲解“Python中的Unittest框架的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中的Unittest框架的用法”吧!  Unittest  1.环境  Un...
    99+
    2023-06-02
  • 使用unittest和ddt进行数据驱动
    1、安装ddt #pip install ddt 2、卸载ddt     # coding = utf-8 # encoding = utf-8 import ddt import time import unittest imp...
    99+
    2023-01-30
    数据 unittest ddt
  • Jmeter常用断言之JSON断言简介
    JSON断言可以对服务器返回的JSON文档进行验证。 JSON断言有两种使用模式: 1.根据JSONPath能否在JSON文档中找到路径; 2.根据JSONPath提取值并对值进行验证。 结果判定:若文档格式为非JSON则断言失败;找不到路...
    99+
    2023-08-17
    jmeter java 单元测试 测试工具 json断言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作