我是靠谱客的博主 危机镜子,最近开发中收集的这篇文章主要介绍assert断言的使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行时崩溃,不如在出现错误条件时就崩溃,这时候就需要assert断言的帮助。

python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。

assert 1==1
assert 2+2==2*2
assert len(['my boy',12])<10
assert range(4)==[0,1,2,3]

为assert断言语句添加异常参数

assert 表达式 [, 参数]

lists = [1,2,3,4,5]
assert len(lists) >=5,'列表元素个数小于5'
assert 2==1,'2不等于1'

py.test
py.test 是一个轻量级的测试框架,所以它压根就没写自己的断言系统,但是它对Python自带的断言做了强化处理,如果断言失败,那么框架本身会尽可能多地提供断言失败的原因。那么也就意味着,用py.test实现测试,你一行代码都不用改。

import pytest

def test_case():
    expected = "Hello"
    actual = "hello"
    print('hello')
    assert expected == actual

if __name__ == '__main__':
    pytest.main()

unittest

Python自带的unittest单元测试框架就有了自己的断言方法self.assertXXX()

import unittest

class TestStringMethods(unittest.TestCase):

    def test_upper(self):
        self.assertEqual('foo'.upper(), 'FoO')

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

运行结果:

F
======================================================================
FAIL: test_upper (__main__.TestStringMethods)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "E:/Python/代码/scrapy/test/test_30_assert.py", line 46, in test_upper
    self.assertEqual('foo'.upper(), 'FoO')
AssertionError: 'FOO' != 'FoO'
- FOO
?  ^
+ FoO
?  ^


----------------------------------------------------------------------
Ran 1 test in 0.003s

FAILED (failures=1)

 

 

 

最后

以上就是危机镜子为你收集整理的assert断言的使用的全部内容,希望文章能够帮你解决assert断言的使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部