使用Unittest测试框架testcase、testsuite、testloader、testrunner做测试

本文介绍了如何使用Python的Unittest框架进行测试,包括使用TestCase类的断言方法,利用testsuite组织测试用例,通过TestLoader加载测试,以及使用TextTestRunner展示测试结果。内容涵盖Unittest的优势、测试集合的概念以及测试结果的输出。
摘要由CSDN通过智能技术生成

以下内容B站千峰软件测试训练营内容

 引入例子使用简单的例子进行测试脚本的开发:

#开发实现功能myMath.py
class mymath():
    def jia(self,a,b):
        return a+b
    def jian(self,a,b):
        return a-b
    def chengfa(self,a,b):
        return a*b
    def chufa (self,a,b):
        if b==0:
            return 'ee'
        else:
            return a/b
if __name__=="__main__":
    mm=mymath()
    #测试用例一:验证数字的加法
    actualValue=mm.jia(2,3)
    exceptValue=5
    if actualValue==exceptValue:
        print("该加法功能实现正确",exceptValue)
    # 测试用例2:异常用例
    try :
        actualValue=mm.jia("a",3)
        exceptValue = "a3"
        if actualValue == exceptValue:
            print("该加法功能实现正确",exceptValue)
    except Exception as e:
        print("该方法实现不正确",e)
    #验证字符串的加法
    try :
        actualValue=mm.jia("a","b")
        exceptValue ="ab"
        if actualValue == exceptValue:
            print("该加法功能实现正确",exceptValue)
    except Exception as e:
        print("该方法实现正确",e)
输出:

该加法功能实现正确 5
该方法实现不正确 can only concatenate str (not "int") to str
该加法功能实现正确 ab

这种方法的特点:

1.断言方式太low,需要使用if-else进行判断;

2.测试结果在控制台输出,看不到测试报告的效果。

于是引入Unittest框架,其优势在于:

1.提供了用例的组织与形式;

2.提供了丰富的日志和报告;

3.提供了丰富的断言方法,如表1所示.

表1 unittest框架TestCase类提供的断言方法

方法 描述 方法 描述 assertEqual(a,b) a==b assertIn(a,b) a in b assertTrue(x) bool(x) isTrue assertNone(x) x is None assertIs(a,b) a is b assertIsInstance(a,b) isInstance(a,b)

以下将通过unnittest 框架来实现mytest

引入unittest框架来设计mymath单元测试用例
TestCase步骤:
        1.导包 unittest是自导的框架,不需要安装;
        2.创建一个单元测试类(其实就是类,只不过他继承了单元测试框架单元测试用例的类);
        3.单元测试类中的5个方法的使用,包括使用场景及执行顺序;
                 setUp():测试用例的资源初始化,一般写入测试用例的前提条件;
                 test_add_1():测试用例,把测试用例步骤写在这个方法中;
                 tearDown()用于测试用例的资源释放。
                 @classmethod注解的是类方法,不用创建对象也能用,在对象创建之前就已经存在
                              的方法随着类进入内存。
                 setUpClass给当前所有的测试类进行初始化
                 tearDownClass给所有的单元测试用例进行资源释放
        4.创建测试用例:test开头的方法,与代码顺序无关
        5.测试用例的执行:
                 main():所有的测试用例执行一遍,测试用例的执行顺序按照测试用例方法名的字母序执行的。
import  unittest
from myMath import mymath
#创建一个单元测试类(继承自unittest.testcase)
class myMathTest(unittest.TestCase):

    #测试用例资源初始化方法
    def setUp(self):
        self.mm=mymath()
    #测试用例方法
    def test_add_1(self):
        actualValue=self.mm.jia(2,1)
        exceptValue=3
        #断言
        self.assertEqual(actu
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值