• 0
  • 0
分享
  • Python中的Assert语句简明教程——软件测试圈
  • 曼倩诙谐 2023-05-09 11:19:59 字数 1167 阅读 1210 收藏 0

  1. 引言

  如果你是一个Python新手,那么你可能会在一些代码中看到assert关键字的语句。对于该语句,有人喜欢有人不喜欢,本文重点介绍Assert语句的作用以及什么时候应该使用该语句。

  闲话少说,我们直接开始吧!

  2. 基础语法

  Assert语句的基础语法如下:

  assert boolean_expression

  这里,我们期望上述boolean_expression取值为True,而assert关键字的作用是帮助我们再次检查它是否真的为True。

  此时如果我们断言是True,那么一切都好,没有什么错,我们可以像往常一样继续往下执行。

  但是,如果我们断言为False,则会发生如下断言错误:

  Traceback (most recent call last):
    File "/your/path/a.py", line 2, in <module>
      assert False
  AssertionError

  3. 基础用法

  我们可以将assert关键字作为代码中的某种健全性检查。比如在我们的代码中的某个点上,如果我们期望某些东西以某种方式出现,此时我们就可以使用assert关键字来验证它。

  例如,假设我们有一个复杂的函数get_price(),它主要用于检索某个物品的价格。这里,假设价格不能是负数。

  price = get_price()
  assert price >= 0

  上述代码中,语句assert price>0主要用于检查并验证price不是负数。如果函数get_price()有错误并返回负数,则会发生断言错误并停止运行程序。

  4. 断言并输出提示信息

  更进一步,我们可以添加断言消息,该消息与断言错误一起显示。

  语法如下:

  assert boolean_expression, message

  举例如下:

  price = -1
  assert price > 0, "price must not be negative"

  输出如下:

  Traceback (most recent call last):
    File "/your/path/a.py", line 3, in <module>
      assert price > 0, "price must not be negative"
  AssertionError: price must not be negative

  5. 结论

  本文重点介绍了Python中的Assert关键字的基础语法和应用场景,并给出了相应的代码示例。



作者:赵卓不凡    

来源:http://www.51testing.com/html/68/n-7794068.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 1.按测试阶段划分(1) 单元测试单元测试(模块测试):针对软件设计最小的单位-程序模块,进行正确性检查的测试工作单元测试需要从程序内部结构出发设计测试用例,多个模块可以平行的独立进行单元测试单元定义:C中个一个函数,Java中的一个类在图像化软件中是一个窗口( Android的首页,我的,商品详情)(2) 集成测试集成测试(组装测试):在单元测试基础上,将所有的程序模块进行有序的,递增的测试,重点测试模块之间的接口部分(3) 系统测试系统测试:整个软件系统,全面的在进行一次测试2.是否覆盖源代码白盒测试白盒测试:看代码,研究程序源代码,和程序结构黑盒测试黑盒测试:没有代码,就是看表面的效果,...
            13 13 2495
            分享
          • 功能测试(Function test)输入正确的用户名和密码,点击提交按钮,验证是否能正确登录;输入错误的用户名或者密码, 验证登录会失败,并且提示相应的错误信息;登录成功后能否能否跳转到正确的页面;用户名和密码,如果太短或者太长,应该怎么处理;用户名和密码,中有特殊字符,和其他非英文的情况;记住用户名的功能;登陆失败后,不能记录密码的功能;用户名和密码前后有空格的处理;密码是否以星号显示;用户名和密码全不输入时和只输入某一项时的错误提示;登陆成功后是否在当前窗口打开页面。界面测试(UI Test)布局是否合理,2个testbox 和一个按钮是否对齐;testbox和按钮的长度,高度是否复合要...
            0 0 1481
            分享
          • 随着互联网技术的日益发展,测试开发工程师要达到“保障质量、提升效率”目标,提升效率更体现在方方面面。作为测试开发工程师,需要掌握基本开发技能,对代码能力也有一定的要求,这也是对项目多一道强有力的保障。在功能测试遇到BUG时,测试开发工程师需在编译器中调试代码,一边追根溯源,一边监测代码质量。而“追根溯源”这一步最重要的依据就是系统输出日志,日志也是开发人员定位问题的第一检查场所。因此,为提升这部分工作效率,小编想通过ELK搭建一套日志收集、存储、展示的工具,来解决目前存在的日志查看效率低下、缺少可视化界面等问题。1.什么是ELKELK由Elasticsearch、Logstash和Kibana...
            2 2 1435
            分享
          •   智能穿戴设备是目前已经渐渐融入到日常生活中的一种随身设备了,适用人群和本身功能在不断提升,而且也是目前市场上比较流行的产品需要。各种智能穿戴设备如雨后春笋一般层出不穷。  智能手环作为一种轻量级穿戴设备,外观时尚运动,这种设计风格对于习惯佩戴首饰的用户而言,颇具诱惑力。并同时具备了手表、运动监测和健康监测等诸多功能的智能设备,越来越受到广大用户的青睐,同时在市场上也进入了竞争的白热化阶段,逐渐形成了自己的升级更新路径。  智能手环因为不具备安装应用等功能,严格来说是不能称之为智能设备的,但是因为业界对于同样特质的智能手表给予了“智能”的名号,所以智能手环也就搭了顺车,被冠以智能设备的名号。...
            13 13 3022
            分享
          •   根据韩联社报道,三星和百思买在美国遭遇集体诉讼,原因是他们涉嫌虚假宣传部分三星 QLED 4K 电视的功能,这起诉讼是由加州中区法院的 Ray Kim Law 律师事务所于周一提起的。  据诉讼文件显示,三星的部分 QLED 4K 电视并未配备该公司和百思买所宣传的 Motion Xcelerator Turbo+、FreeSync 或 HDMI 2.1 端口。通常情况下,一些电视较小尺寸的版本缺乏某些功能。例如,43 英寸版本的 The Frame TV 不支持 120Hz 刷新率,而其他尺寸的电视则具有该功能。  Motion Xcelerator Turbo + 是一种通过插帧提高内...
            0 0 995
            分享
      • 51testing软件测试圈微信