python单元测试用例设计

系统 1585 0

前言

在刚学习编程的时候总是忘记处理一些特例(尤其是动态语言可以传各种值),为了养成良好的编程和测试习惯,在编写单元测试用例的时候, 我们注意考虑下如下测试用例(等价类划分):

  • 正常值功能测试
  • 边界值(比如最大最小,最左最右值)
  • 异常值(比如 None,空值,非法值)

实战操作

            
              
                def
              
              
                binary_search
              
              
                (
              
              array
              
                ,
              
               target
              
                )
              
              
                :
              
              
                if
              
              
                not
              
               array
              
                :
              
              
                return
              
              
                -
              
              
                1
              
              
    beg
              
                ,
              
               end 
              
                =
              
              
                0
              
              
                ,
              
              
                len
              
              
                (
              
              array
              
                )
              
              
                while
              
               beg 
              
                <
              
               end
              
                :
              
              
        mid 
              
                =
              
               beg 
              
                +
              
              
                (
              
              end 
              
                -
              
               beg
              
                )
              
              
                //
              
              
                2
              
              
                # py3
              
              
                if
              
               array
              
                [
              
              mid
              
                ]
              
              
                ==
              
               target
              
                :
              
              
                return
              
               mid
        
              
                elif
              
               array
              
                [
              
              mid
              
                ]
              
              
                >
              
               target
              
                :
              
              
            end 
              
                =
              
               mid
        
              
                else
              
              
                :
              
              
            beg 
              
                =
              
               mid 
              
                +
              
              
                1
              
              
                return
              
              
                -
              
              
                1
              
              
                def
              
              
                test
              
              
                (
              
              
                )
              
              
                :
              
              
                """
    如何设计测试用例:
    - 正常值功能测试
    - 边界值(比如最大最小,最左最右值)
    - 异常值(比如 None,空值,非法值)
    """
              
              
                # 正常值,包含有和无两种结果
              
              
                assert
              
               binary_search
              
                (
              
              
                [
              
              
                0
              
              
                ,
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                4
              
              
                ,
              
              
                5
              
              
                ]
              
              
                ,
              
              
                1
              
              
                )
              
              
                ==
              
              
                1
              
              
                assert
              
               binary_search
              
                (
              
              
                [
              
              
                0
              
              
                ,
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                4
              
              
                ,
              
              
                5
              
              
                ]
              
              
                ,
              
              
                6
              
              
                )
              
              
                ==
              
              
                -
              
              
                1
              
              
                assert
              
               binary_search
              
                (
              
              
                [
              
              
                0
              
              
                ,
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                4
              
              
                ,
              
              
                5
              
              
                ]
              
              
                ,
              
              
                -
              
              
                1
              
              
                )
              
              
                ==
              
              
                -
              
              
                1
              
              
                # 边界值
              
              
                assert
              
               binary_search
              
                (
              
              
                [
              
              
                0
              
              
                ,
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                4
              
              
                ,
              
              
                5
              
              
                ]
              
              
                ,
              
              
                0
              
              
                )
              
              
                ==
              
              
                0
              
              
                assert
              
               binary_search
              
                (
              
              
                [
              
              
                0
              
              
                ,
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                4
              
              
                ,
              
              
                5
              
              
                ]
              
              
                ,
              
              
                5
              
              
                )
              
              
                ==
              
              
                5
              
              
                assert
              
               binary_search
              
                (
              
              
                [
              
              
                0
              
              
                ]
              
              
                ,
              
              
                0
              
              
                )
              
              
                ==
              
              
                0
              
              
                # 异常值
              
              
                assert
              
               binary_search
              
                (
              
              
                [
              
              
                ]
              
              
                ,
              
              
                1
              
              
                )
              
              
                ==
              
              
                -
              
              
                1
              
            
          

当然我们也不用做的非常细致,要不然写测试是一件非常繁琐累人的事情,甚至有时候为了测试而测试,只是为了让单测覆盖率好看点。 当然如果是web应用用户输入,我们要假设所有的参数都是不可信的。 但是很多内部调用的函数我们基于约定来编程,如果你瞎传参数,那就是调用者的责任了。


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论