当前位置:首页 » 《随便一记》 » 正文

pytest学习和使用5-Pytest和Unittest中的断言如何使用?_NoamaNelson的博客

9 人参与  2022年04月04日 17:06  分类 : 《随便一记》  评论

点击全文阅读


Pytest和Unittest中的断言如何使用?

  • 1 说明
  • 2 Uinttest中的断言
    • 2.1 部分断言
    • 2.2 部分举例
  • 3 Pytest断言
    • 3.1 常用断言
    • 3.2 表示方法
    • 3.3 异常断言

1 说明

  • pytest中使用assert进行断言,和unittest是有区别的,后边详细列举;
  • pytest中的assert后可以为表达式,为True表示用例通过。

2 Uinttest中的断言

2.1 部分断言

  • 我们写一个class,代码中就可以看到所有的断言:
    在这里插入图片描述
  • 常用断言:
方法检查
assertEqual(a, b)a ==b
assertNotEqual(a, b)a !=b
assertTrue(x)bool(x) is True
assertFalse(x)Bool(x) is False
assertIs(a, b)a is b
assertIsNot(a, b)a is not b
assertIsNone(x)x is None
assertIsNotNone(x)x is not None
assertIn(a, b)a in b
assertNotIn(a, b)a not in b
assertIsInstance(a, b)isinstance(a,b)
assertNotIsInstance(a, b)not isinstance(a,b)

2.2 部分举例

# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2021/11/26 
# 文件名称:test_unint.py
# 作用:unittest断言
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson

import unittest

class TestU(unittest.TestCase):
    def setUp(self) -> None:
        self.a = 3
        self.b = 4
        self.c = 3
        self.d = 0

    def tearDown(self) -> None:
        pass

    def test_o(self):
        self.assertTrue(self.c, msg="结果为False")

    def test_t(self):
        self.assertEqual(self.a, self.c, msg="a和c不相等")


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

3 Pytest断言

3.1 常用断言

断言说明
assert a判断 a为真
assert not a判断 a不为真
assert a in b判断 b 包含 a
assert a == b判断 a 等于 b
assert a != b判断 a 不等于 b

3.2 表示方法

# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2021/11/26 
# 文件名称:test_assert.py
# 作用:assert断言
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson

import pytest


class TestU():

    def test_f(self):
        a = 3
        b = 4
        s = a + b
        return s

    def test_func(self):
        assert self.test_f() == 7, "计算结果不是7"


if __name__ == "__main__":
    pytest.main()
  • 输出为:
(venv) F:\pytest_study\test_case\test_d>pytest test_assert.py
============================================ test session starts =============================================
platform win32 -- Python 3.7.0, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: F:\pytest_study\test_case\test_d
plugins: allure-pytest-2.8.12, cov-2.8.1, forked-1.1.3, html-2.0.1, metadata-1.8.0, ordering-0.6, xdist-1.31.0
collected 2 items

test_assert.py ..                                                                                       [100%]

============================================= 2 passed in 0.31s ==============================================

3.3 异常断言

  • 可以使用 pytest.raises 作为上下文管理器,当抛出异常时可以获取到对应的异常实例;
  • 目的是断言抛出的异常是不是预期想要的;
  • 比如如下,断言1 / 0的异常是不是ZeroDivisionError,其中ZeroDivisionError是异常类型,用type从异常信息中获取;division by zero是异常的值,使用value从异常信息中获取。
    def test_a(self):
        with pytest.raises(ZeroDivisionError) as e:
            1 / 0

        assert e.type == ZeroDivisionError
        assert "division by zero" in str(e.value)

『全栈测试技术,分享,共勉,共进,提升』



点击全文阅读


本文链接:http://m.zhangshiyu.com/post/37324.html

断言  异常  判断  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 月光曾照我身前言+后续+结局(徐牧野鹿乔薇)_月光曾照我身前言+后续+结局徐牧野鹿乔薇
  • 爱似流萤遇繁星(沐星澜陆司沉)_爱似流萤遇繁星沐星澜陆司沉
  • [捡个老婆,小猎户变成大皇帝]节选试读_「周晨李月娥」小说精彩章节分享
  • 老婆和前任把我的婚房变成毒房,重生后我让他们自食恶果赏析(周若琳)全书免费_(周若琳)老婆和前任把我的婚房变成毒房,重生后我让他们自食恶果赏析后续(周若琳)
  • 她在春日里沉眠后续更新+番外(乔清瑜季泽珩)_她在春日里沉眠后续更新+番外
  • 也曾偷藏欢喜速览(乔喜商凛乔雪眠)_也曾偷藏欢喜速览
  • 全书浏览也曾偷藏欢喜(乔喜商凛乔雪眠)_也曾偷藏欢喜(乔喜商凛乔雪眠)全书结局
  • (番外)+(全书)她在春日里沉眠***_(乔清瑜季泽珩)她在春日里沉眠列表_笔趣阁(乔清瑜季泽珩)
  • 爱似流萤遇繁星结局+番外(沐星澜陆司沉)列表_爱似流萤遇繁星结局+番外
  • 捧一片星空+后续+结局(林溪傅迟宴)列表_捧一片星空+后续+结局
  • 九幽不渡卿全书+后续+结局(孟卿卿谢昭远绮萝)列表_九幽不渡卿全书+后续+结局(孟卿卿谢昭远绮萝)九幽不渡卿全书+后续+结局在线
  • (番外)+(全书)长枪孤自赏芳华全书+后续+结局(长枪孤自赏芳华全书+后续+结局)沈静姝萧祈年_沈静姝萧祈年列表_笔趣阁(长枪孤自赏芳华全书+后续+结局)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1