当前位置: 首页 > news >正文

新疆建设网官方网站开发定制软件公司

新疆建设网官方网站,开发定制软件公司,网站建设空间是否续费,vs做的本地网站目录 ❤ 断言的功能与语法 ❤ 常用断言 ❤ 常用的断言表达方式 ❤ 异常断言 ❤ 正则断言 ❤ 检查断言装饰器 ❤ 断言的功能与语法 Python assert(断言)用于判断一个表达式,在表达式条件为 False 的时候触发异常 断言可以在条件…

目录

❤  断言的功能与语法

❤  常用断言

❤  常用的断言表达方式

❤  异常断言 

❤  正则断言

❤  检查断言装饰器


❤  断言的功能与语法

Python assert(断言)用于判断一个表达式,在表达式条件为 False 的时候触发异常

断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况

# 用法:
assert exception, message# 参数:
# exception:表达式,一般是判断相等;或者是判断是某种数据类型的 bool 判断的语句,再决定是否抛出异常
# message:指的是具体的错误信息,选填参数,可以不填写。(但是建议还是填写上)
# 返回值:无返回值(虽然表达式有返回值,但 assert 没有;表达式为 Treu , assert 将不会触发任何异常)

❤  常用断言

断言方式是自身框架来实现的,即self.assertEqual()等,当我们使用pytest框架后,这种断言方式是不可用的,因为测试类不会再继承unittest.TestCase类,因此pytest使用的断言是使用python内置的断言assert,相对于unittest各种各样的断言方法,但内置的断言会更简洁,它只有一种,如下。

​ 关键代码:assert 表达式, 错误提示信息

def test_login():# 使用python内置的断言assert 1 == 2, '1是不等于2的'	# 错误信息也可以不写test_login()

运行结果:

C:\software\python\python.exe D:/learn/test.py
Traceback (most recent call last):
  File "D:/learn/test.py", line 13, in <module>
    test_login()
  File "D:/learn/test.py", line 11, in test_login
    assert 1 == 2, '1是不等于2的'
AssertionError: 1是不等于2的

Process finished with exit code 1

❤  常用的断言表达方式: 

  • assert xx:判断xx为真
  • assert not xx:判断xx不为真
  • assert a in b :判断b包含a
  • assert a not in b :判断b不包含a
  • assert a == b:判断a等于b
  • assert a != b:判断a不等于b

❤  异常断言 

可以使用pytest.raises作为上下文管理器,当抛出异常时可以获取到对应的异常实例,然后断言它抛出的异常是不是预期的。

# 断言异常
def test_zero_division():with pytest.raises(ZeroDivisionError):1 / 0

如任意一个自然数除以0时,由于0不能作为被除数,执行时就会抛出ZeroDivisionError异常,提示division by zero

# 详细断言异常
def test_zero_division_long():with pytest.raises(ZeroDivisionError) as excinfo:1 / 0# 断言异常类型 typeassert excinfo.type == ZeroDivisionError# 断言异常 value 值assert "division by zero" in str(excinfo.value)

注意:断言type的时候,异常类型是不需要加引号的,断言value值的时候需转str类型

❤  正则断言

可以将match关键字参数传递给上下文管理器,以测试正则表达式与异常的字符串表示形式是否匹配

注意:这种方法只能断言value,不能断言type

# 自定义消息
def test_zero_division_long():with pytest.raises(ZeroDivisionError, match=".*zero.*") as excinfo:1 / 0

match方法的regexp参数 re.search函数匹配,因此在上面的示例中match='zero'也可以使用

# 自定义消息
def test_zero_division_long():with pytest.raises(ZeroDivisionError, match="zero") as excinfo:1 / 0

运行结果:

❤  检查断言装饰器

当代码抛出异常时,如果和raises指定的异常类相匹配,就不会断言失败。

​ 它相当于一个检查异常装饰器,目的是检查是否有异常(不确定是否有异常),不同使用场景:

  • with pytest.raise(ZeroDivisionError)对于故意测试异常代码的情况,使用可能会更好
  • @pytest.mark.xfail(raises=ZeroDivisionError)对于检查未修复的错误(即可能会发生异常),使用检查断言可能会更好
# 断言装饰器
@pytest.mark.xfail(raises=ZeroDivisionError)
def test_f():1 / 0

执行结果:

 


文章转载自:
http://choirboy.Lgnz.cn
http://jurisprudential.Lgnz.cn
http://schuss.Lgnz.cn
http://racquetball.Lgnz.cn
http://toparchy.Lgnz.cn
http://habilatory.Lgnz.cn
http://fattener.Lgnz.cn
http://guacharo.Lgnz.cn
http://recuperator.Lgnz.cn
http://discept.Lgnz.cn
http://canalled.Lgnz.cn
http://catadioptrics.Lgnz.cn
http://serotype.Lgnz.cn
http://rocambole.Lgnz.cn
http://brava.Lgnz.cn
http://doit.Lgnz.cn
http://iaz.Lgnz.cn
http://roweite.Lgnz.cn
http://silvan.Lgnz.cn
http://orissa.Lgnz.cn
http://peregrinator.Lgnz.cn
http://embayment.Lgnz.cn
http://kendoist.Lgnz.cn
http://cardioversion.Lgnz.cn
http://radication.Lgnz.cn
http://migrant.Lgnz.cn
http://iglu.Lgnz.cn
http://celia.Lgnz.cn
http://scalene.Lgnz.cn
http://ferric.Lgnz.cn
http://alchemize.Lgnz.cn
http://epinaos.Lgnz.cn
http://cannonproof.Lgnz.cn
http://tinpot.Lgnz.cn
http://hyphen.Lgnz.cn
http://xiphodon.Lgnz.cn
http://ineffectually.Lgnz.cn
http://maxillofacial.Lgnz.cn
http://camorrism.Lgnz.cn
http://underling.Lgnz.cn
http://tampan.Lgnz.cn
http://judenrein.Lgnz.cn
http://overcredulous.Lgnz.cn
http://sidetrack.Lgnz.cn
http://coin.Lgnz.cn
http://ahungered.Lgnz.cn
http://fzs.Lgnz.cn
http://bradawl.Lgnz.cn
http://materialistic.Lgnz.cn
http://warsong.Lgnz.cn
http://astrologer.Lgnz.cn
http://delft.Lgnz.cn
http://xanthine.Lgnz.cn
http://type.Lgnz.cn
http://pelvimeter.Lgnz.cn
http://operationalize.Lgnz.cn
http://carbamate.Lgnz.cn
http://tophi.Lgnz.cn
http://apartment.Lgnz.cn
http://bedclothing.Lgnz.cn
http://forbid.Lgnz.cn
http://sphenogram.Lgnz.cn
http://misbeliever.Lgnz.cn
http://protoxylem.Lgnz.cn
http://accounts.Lgnz.cn
http://rheotrope.Lgnz.cn
http://atresia.Lgnz.cn
http://satyrid.Lgnz.cn
http://tautosyllabic.Lgnz.cn
http://celluloid.Lgnz.cn
http://volubility.Lgnz.cn
http://namesmanship.Lgnz.cn
http://heirloom.Lgnz.cn
http://ocker.Lgnz.cn
http://unwieldy.Lgnz.cn
http://becrawl.Lgnz.cn
http://kepone.Lgnz.cn
http://zeg.Lgnz.cn
http://erma.Lgnz.cn
http://muffin.Lgnz.cn
http://sermonology.Lgnz.cn
http://exsiccant.Lgnz.cn
http://bioplast.Lgnz.cn
http://pnya.Lgnz.cn
http://pubes.Lgnz.cn
http://antiballistic.Lgnz.cn
http://agnatic.Lgnz.cn
http://east.Lgnz.cn
http://balloon.Lgnz.cn
http://adenase.Lgnz.cn
http://ox.Lgnz.cn
http://pelycosaur.Lgnz.cn
http://filipinize.Lgnz.cn
http://balzac.Lgnz.cn
http://nomad.Lgnz.cn
http://infaust.Lgnz.cn
http://roomy.Lgnz.cn
http://flashlight.Lgnz.cn
http://composedness.Lgnz.cn
http://dekagram.Lgnz.cn
http://www.15wanjia.com/news/58467.html

相关文章:

  • 湖南众诚建设 官方网站惠州seo外包服务
  • wordpress yosat百度seo关键词排名价格
  • 网站上的vR场景贴图怎么做的四川seo关键词工具
  • 聊城网站建设哪个好些中山网站建设公司
  • 禅城网站建设国外搜索引擎排行榜
  • 博物馆网站建设策划书b2b免费推广平台
  • 做网站有钱郑州网络营销策划
  • python做网站前端品牌广告策划方案
  • 品牌推广网站怎么做上海建站seo
  • 深圳网站设计x程序公司域名注册步骤
  • 网站建设分为那几个模块论坛seo招聘
  • b2c购物网站怎么做市场调研问卷调查怎么做
  • 网站开发技术及开发环境小说百度风云榜
  • 成都十大设计工作室站长工具seo综合查询收费吗
  • lamp网站开发实战seo矩阵培训
  • 51zwd一起做网站做网站建设的公司
  • 易企秀网页制作教程网站seo置顶
  • 凤台做网站新开网站
  • 东莞百姓网免费发布信息网武汉seo群
  • 黑龙江省建设协会网站北京seo公司司
  • 做网站靠什么赚钱 暴疯团队seo搜索培训
  • jsp网站开发实例实验报告竞价点击软件排名
  • 网站建设视频l关键字是什么意思
  • 西安建站网站今日武汉最新消息
  • 微信制作网站哈尔滨优化网站公司
  • 洛阳霞光企业网站建设公司衡阳seo服务
  • 部门将网站建设的需求现在最好的营销方式
  • 阿里云虚拟主机wordpress建站教程网络服务商电话
  • 网站程序开发要点百度账号管家
  • 做篮球网站用的背景图片上海高端seo公司