zoukankan      html  css  js  c++  java
  • pytest(11):assert断言

    前言

      一条测试用例必须要有断言才是完整的用例,没有断言的用例是没有灵魂的,虽然断言的作用非常大,但使用起来非常简单。

    例子:

    # content of test_sample.py
    def inc(x):
        return x + 1
    
    
    def test_answer():
        assert inc(3) == 5

    运行结果:

    $ pytest
    =========================== test session starts ============================
    platform linux -- Python 3.x.y, pytest-6.x.y, py-1.x.y, pluggy-0.x.y
    cachedir: $PYTHON_PREFIX/.pytest_cache
    rootdir: $REGENDOC_TMPDIR
    collected 1 item
    
    test_sample.py F                                                     [100%]
    
    ================================= FAILURES =================================
    _______________________________ test_answer ________________________________
    
        def test_answer():
    >       assert inc(3) == 5
    E       assert 4 == 5
    E        +  where 4 = inc(3)
    
    test_sample.py:6: AssertionError
    ========================= short test summary info ==========================
    FAILED test_sample.py::test_answer - assert 4 == 5
    ============================ 1 failed in 0.12s =============================

    错误原因显示4==5所以会断言错误。

    常用断言

    pytest里面断言实际上就是python里面的assert断言方法,常用的有以下几种

    • assert xx 判断xx为真
    • assert not xx 判断xx不为真
    • assert a in b 判断b包含a
    • assert a == b 判断a等于b
    • assert a != b 判断a不等于b
    import pytest
    
    def is_true(a):
        if a > 0:
            return True
        else:
            return False
    
    def test_001():

    '''断言为真''' a = 5 b = -1 assert is_true(a) assert not is_true(b) def test_02(): '''断言b包含 a''' a = "zeng" b = "zengxuejie" assert a in b def test_03(): '''断言相等''' a = "zeng" b = "zeng" assert a == b def test_04(): '''断言不等于''' a = 5 b = 6 assert a != b

    总体而言,断言很重要,但是使用起来不复杂,是测试用例必不可少的一部分。

    关注个人公众号:测试开发进阶之路

      

  • 相关阅读:
    破解密码那些事儿(Hacking Secret Ciphers with Python)
    Hacking Secret Ciphers with Python翻译序言
    闲话高并发的那些神话,看京东架构师如何把它拉下神坛
    实现rabbitmq 延迟队列功能
    日志文件的编写
    依赖倒置、控制反转和依赖注入的区分
    Oracle ORA-01722: 无效数字 处理方法
    Time.timeScale 对 协程WaitForSeconds的影响
    [转]Coroutine,你究竟干了什么?
    转:Automatic Layout Groups
  • 原文地址:https://www.cnblogs.com/zengxuejie/p/13786504.html
Copyright © 2011-2022 走看看