繁体   English   中英

使用python中的unittest库进行代码测试

[英]Code testing using unittest library in python

几天来,我一直在努力学习如何在Python中正确使用unittest库。 我有一些基础知识,但是我已经使自己面临挑战-测试我之前做的两个功能。 这些是功能:

    def PatternMatch(self, message, number):
        ret_status = 2 # 'No match'
        ret_pattern = -1  

        for pattern in self.PatternList:
            if pattern.active == 1 and pattern.LA == number:
                try:
                    RegExp = re.compile(pattern.regex)
                if RegExp.match(message):
                    ret_status = 1
                    ret_pattern = pattern.ID
                    break

        return ret_status, ret_pattern


    def GetPattern(self, patternID):
        pattern = None
        db = Database()
        query = 'CALL PATTERN_GET'
        query += '(@sql_err_code, @my_status, @my_msg, %s)'
        ret = db.query(query, [patternID])
        if len(ret['data']) == 2:
            pattern = Pattern(ret['data'][1])
        else:
            pattern = Pattern()

        result = {'status': ret['data'][0]}
        return pattern, result

我应该如何开始? 我已经使用mox库模拟了数据库连接,并且可以正常工作,但是功能如何? 感谢您的帮助。

考虑到问题的普遍性,只有一般性建议是可能的-基本上,您需要准备执行以下操作的测试数据和/或输入:

  1. 代码覆盖率-将所有执行路径强制移到每个决策路径。
  2. 决策覆盖率-如上所述,但是通过各种决策方式-例如,如果> = 0,则需要用<0,a == 0和a> 0进行测试。
  3. 极端情况下的覆盖范围-代码是否可以处理非常大,非常小的,非常负的,无值的代码。
  4. 异常范围:提出文档中可以由try子句中的代码引发的所有异常,并查看它们是否被正确处理或应允许通过。
  5. 始终以清楚说明您要在该组测试数据中实现的目标开始每组测试数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM