• unitest单元测试TestCase 执行测试用例(一)


    前言

    unittest单元测试框架不仅可以适用于单元测试,还可以适用自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果。

    unittest中最核心的部分是:TestFixture、TestCase、TestSuite、TestRunner  本次我们讲述TestCase

    操作

    现在我们有这样一个代码    

    class MathMethod:  #创建了一个算数的类
    def __init__(self,a,b): 定义一个初始化函数/方法
    self.a = a
    self.b = b

    def add(self):#加法 加法的函数
    return self.a + self.b

    def multi(self):#乘法 乘法的函数
    return self.a * self.b

    我们往MathMethod()这个类里,传递2个数,然后调用加法就会自动算出2个数相加的和,如果调用乘法,就会算出乘法的值

    重点来了,我们写好一串代码之后,我们怎么样自测我们的类、函数 是否都正确呢?

    我们可以用单元测试 去测试我们的代码是否都正确。

    首先我们要导入我们的unitest

    import unitest

    class Testmathmethod(unittest.TestCase):      #继承了unitest里面的testcase类,专门用来写用例的

        '''

        一个函数就是一个用例,不能传递参数,只有self关键字

        所有的用例都是test开头(函数)

        执行函数(用例)是根据ascii编码执行的,abcdef。。。

        '''


    def test_add_two_positive(self):#两个正数相加
    res = MathMethod(1,1).add()
    print("1+1的结果是:",res)

    def test_add_two_zero(self): #两个0相加
    res = MathMethod(0,0).add()
    print("0+0的结果是:",res)
    def test_add_two_negative(self): #两个负数相加
    res = MathMethod(-1,-2).add()
    print("-1+-2的结果是:",res)



    当我们对加法进行了我们的用例编写之后,用函数的方式去执行  
    if __name__ == '__main__':
    unittest.main()

    执行完看下我们的执行结果

     

    我们来解析一下我们的执行结果

    1:... 三个点代表执行了3次,有3个成功了,F代表断言失败了,E代表Error 失败        ..F..E这个意思是1、2条用例成功,第三条断言失败,第45条成功,第6条失败

    2.一共执行了3条用例,一共用了0.002s时间

    3.ok,第一条用例执行情况,第二条用例执行情况,第三条执行情况
    那么有小伙伴就会有疑惑,我明明 写用例的时候第一条写的是1+1  第二条写的是 0+ 0  第三条写的是 -1+ -2

    为什么执行结果却不是按照我写的呢?

    其实他是按照ascii 码的顺序执行的,例如abcdefg......的顺序
    看下我们写的用例 

    test_add_two_positive  #两个正数相加
    test_add_two_zero  #两个0相加
    test_add_two_negative 两个负数相加

    如果根据ascii码的顺序, n > P > Z
    test_add_two_negative  #两个负数相加
    test_add_two_positive  #两个正数相加
    test_add_two_positive  #两个0相加

    那也就与我们的输出值保持了一致

     
    
    

  • 相关阅读:
    Tips——RN HTML两端通信
    Tips——RN如何动态地添加删除组件
    Tips——RN webview如何实现首次加载自动登录及后续定时登录
    Between Us 1 生命的起源
    获取当前工作路径和当前模块路径
    从标准输出和读入
    字符串赋值操作
    char,string和CString转换
    字符串结束标志
    Lenovo GTX960M 配置CUDA
  • 原文地址:https://www.cnblogs.com/ztcbug/p/15203721.html
Copyright © 2020-2023  润新知