【软件测试学习】unittest单元测试入门

什么是单元测试

测试开发编写的代码
单元测试的单位是函数
Unittest是单元测试 框架工具,是python自带工具,由4个部分组成
测试用例(一个单元测试用例就是一个函数)
测试套(多条用例的集合)
测试固件(测试用例准备工作setUp函数表示,测试用例结束工作tearDown函数表示)
TestRunner:测试执行器(对象unittest.main())作用就是执行设定的测试用例得出测试结果交给测试人员
程序员自测的缺点:

  1. 不方便组织多条测试用例
  2. 不方便结论日志产出
  3. 不方便用例顺序组合

编写测试用例

快速入门

测试这个计算器

class count:
    def __init__(self,name,a,b):
        self.name=name
        self.a=a
        self.b=b
    def add(self):
            return self.a+self.b
    def sun(self):
            return self.a-self.b

if __name__=="__main__":
    aa=count("卡西欧",1,2)
    print(aa.add())

使用如下代码

from study1 import count
class Mytest(unittest.TestCase):#unittest.TestCase为固定格式
    def test_1(self):#test为固定格式不可更改
        c=count("张飞",10,20)#建立对象
        vir_1=c.add()#对象调用方法
        self.assertEqual(30,vir_1,msg="第一天用例失败")#参数1和参数2比较,msg=为断言,失败输出输出msg中内容,断言成功,不做输出(只关心失败输出)
#建立一个错误结果
    def test_2(self):
            c = count("张飞", 11, 22)  # 建立对象
            vir_1 = c.add()  # 对象调用方法
            self.assertEqual(99, vir_1, msg="第二天用例失败")
# 测试执行器
if __name__=="__main__":
    unittest.main()#基本测试执行器

1
用测试执行器的原因:在pycharm中,自带了单元测试的基本执行器,不编写unittest.main()照样执行代码,编写代码的原则应与IDE无关(通用性),无法使用其他的执行器,推荐用命令行执行文件

命令行执行

1
1
.代表用例通过,f表示失败
1

setUp与tearDown

每次用例都会执行
1

测试用例顺序

数字小的先执行,数字大的后执行
字母小的先执行,字母大的后执行
强制控制顺序

#强制控制用例顺序
#1编写测试套(多个用例组合)
 aaasuit = unittest.TestSuite()
#2往测试套中追加用例顺序
aaasuit.addTest(Mytest("test_2"))
aaasuit.addTest(Mytest("test_1"))
#追加的顺序就是执行顺序
#再用执行器执行即可
runner = unittest.TextTestRunner()#执行测试套的固定格式
runner.run(aaasuit)#执行测试套的固定格式

在这里插入图片描述

常见断言

assertEqual(a,b):判断a,b是否相等,相等通过,不等失败
assertNotEqual(a,b):判断a,b是否不相等,相等,测试失败
assertTrue(x):判断bool(x)是否为True,如果不是true,测试失败
assertFalse(x):判断bool(x)是否为False,如果不是False,测试失败
assertIN(a,b):判断a是否在b中,如不在,则失败
assertNotIn(a,b):判断a是否在b中,如在,则失败

测试类找被测试包

  • 要点1:被测代码和测试代码放不同的包下
  • 要点2:运行报错
    原因:unittest在找包的时候默认从当前目录下找
    解决:import sys(导入系统配置)以及sys.path.append(“…”)
    append追加,找不到会从(上层目录)…找
    1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值