• 0
  • 0
分享
  • 使用python编写单元测试——软件测试圈
  • 北极 2022-07-04 10:40:18 字数 1702 阅读 1432 收藏 0

使用python3.6编写一个单元测试demo,例如:对学生Student类编写一个简单的单元测试。

1、编写Student类:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
class Student(object):
 
def __init__(self,name,score):
self.name = name
self.score = score
def get_grade(self):
if self.score >= 80 and self.score <= 100:
return 'A'
elif self.score >= 60 and self.score <= 79:
return 'B'
elif self.score >= 0 and self.score <= 59:
return 'C'
else:
raise ValueError('value is not between 0 and 100')

2、编写一个测试类TestStudent,从unittest.TestCase继承:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
import unittest  
from student import Student
 
class TestStudent(unittest.TestCase):
 
def test_80_to_100(self):
s1 = Student('Bart',80)
s2 = Student('Lisa',100)
self.assertEqual(s1.get_grade(),'A')
self.assertEqual(s2.get_grade(),'A')
def test_60_to_80(self):
s1 = Student('Bart',60)
s2 = Student('Lisa',79)
self.assertEqual(s1.get_grade(),'B')
self.assertEqual(s2.get_grade(),'B')
def test_0_to_60(self):
s1 = Student('Bart',0)
s2 = Student('Lisa',59)
self.assertEqual(s1.get_grade(),'C')
self.assertEqual(s2.get_grade(),'C')
def test_invalid(self):
s1 = Student('Bart',-1)
s2 = Student('Lisa',101)
with self.assertRaises(ValueError):
s1.get_grade()
with self.assertRaises(ValueError):
s2.get_grade()
#运行单元测试
if __name__ == '__main__':
unittest.main()

3、运行结果如下:

1.png

4、行单元测试另一种方法:

在命令行通过参数-m unittest直接运行单元测试,例如:python -m unittest student_test

2.png

最后对使用unittest模块的一些总结:

  1. 编写单元测试时,需要编写一个测试类,从unittest.TestCase继承

  2. 对每一个类测试都需要编写一个test_xxx()方法

  3. 最常用的断言就是assertEqual()

  4. 另一种重要的断言就是期待抛出指定类型的Error,eg:with self.assertRaises(KeyError):

  5. 另一种方法是在命令行通过参数-m unittest直接运行单元测试:eg:python -m unittest student_test

  6. 最简单的运行方式是xx.py的最后加上两行代码:

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


作者:dou_being

原文链接:https://blog.csdn.net/dou_being/article/details/80039609

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   职场新人对测试用例的困惑无非有以下几点:  1、什么是测试用例,为什么要写测试用例?  2、不知道怎么写,写了也不知道写的是否完整。  一、什么是测试用例?  百科的释义:  测试用例是对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。  简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。  二、为什么要设计测试用例?  1、指导测试工作的进行  测试用例可以把产品需求转换为可操作的步骤【步骤、操作、输入、输出、优先级等...
            0 0 1082
            分享
          •   一、测试的流程  WEB测试和app应用测试从流程上来说,没有区别。都需要经历测试计划方案,用例设计,测试执行,缺陷管理,测试报告等相关活动。从技术上来说,WEB测试和APP测试其测试类型也基本相似,都需要进行功能测试,性能测试,安全性测试,GUI测试等测试类型。  二、web测试和app测试具体区别  1、兼容性测试的区别  在WEB端是兼容浏览器,在应用端兼容的是手机设备而且相对应的兼容性测试工具也不相同,WEB因为是测试兼容浏览器,所以需要使用不同的浏览器进行兼容性测试(常见的是兼容IE6,IE8,铬,火狐)如果是手机端,那么就需要兼容不同品牌,不同分辨率,不同的Android版本甚...
            0 0 811
            分享
          •   近几年来随着人工智能、物联网、大数据、云计算等IT新产业快速发展,各行业对软件产品质量要求越来越高。互联网行业快速发展以及技术快速迭代的需求下,期望通过IT培训“借风起火”的人群愈加庞大。BAT、美团、字节跳动、动因等企业纷纷打出高薪招聘软件测试人才。  科技信息时代,万物瞬息而变,而IT行业作为其核心支柱,必然需要不断创新。与此同时企业对测试人才也提出了新的需求,如何应对未来的技术变革,是每个测试人员值得深思的问题。  很多人刚从事软件测试这个行业的时候意气风发,对未来充满无限憧憬。但是摸爬滚打几年以后,渐渐的发现这个行业不像当初了解的那么美好。比起网上很多鼓吹自动化、性能测试多么有前途...
            0 0 1422
            分享
          • 知识永远学不完,但多懂一点知识就会让生活更轻松一点!又是元气满满的一天呐。微信/支付宝/小程序测试大全小程序测试环境小程序一般会准备三个环境:开发版访问测试环境;体验版访问预发环境,连的是生产的地址,白名单人员可见;正式版访问生产环境,所有人可见;共同点是:体验版和正式版都是生产环境的数据;不同点是:体验版只有加入白名单的人可见,正式版就是所有用户可见。小程序测试注意点:更新版本后最好杀一下微信/支付宝进程,不然有可能拿不到微信/支付宝信息,导致有些功能报错;小程序跳转层级有限制,最好每次测试页面都试一下3-5层的跳转,看需求对应改进;考虑有蒙层的场景下,关闭蒙层之后,button是否失去焦点...
            12 14 2634
            分享
          •   接口自动化的代码是比较简单的,单接口用例5行代码,多接口场景用例10行、30行、60行不等,都是那种只要认真看都能看懂的,所以在编写用例代码的时候注释都很简洁。但当很用心去完成一个接口用例时,会发现能做的还可以更多,比如命名和注释,看起来更加赏心悦目。  场景用例  获取二维码+二维码扫码结果:  看起来是真的舒服呢!下面上代码。package com.XXXXXXX.api.kjkhd.naturalperson.login; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON...
            0 0 1231
            分享
      • 51testing软件测试圈微信