在python中为另一个函数创建一个测试函数

时间:2014-09-26 15:39:10

标签: python debugging testing

所以我的任务是为给定代码中的两个函数编写一个测试函数。我不明白通过/失败语句的概念,我需要一些指导。我将发布以下代码。我不是要求答案,因为这是hw。我需要解释逻辑。

 #######################################################################
 ## problem 1 of 2.
 #######################################################################
 # There is a problem with the is_reverse_of function below.
 # Assignment 1:
 # 1.1. Develop a suite of tests to properly test the function.
 # 1.2. Debug this faulty function to locate and correct the problem.

def is_reverse_of( st1, st2 ):
       """
    is_reverse_of : String String -> Boolean
    is_reverse_of tells if one string is the reverse of another.
    preconditions: st1 and st2 are character strings.
    """
    if len( st1 ) != len( st2 ):
        return False
    i = 0
    j = len( st2 )
    while j > 0:
        if st1[i] != st2[j]:
            return False
        i += 1
        j -= 1

    return True

def test_is_reverse_of():
    """
    a suite of pass/fail test cases to validate that is_reverse_of works.
    """
    # Complete this test function.
    pass

if __name__ == "__main__":
    test_is_reverse_of()

1 个答案:

答案 0 :(得分:0)

您可能误解了pass关键字在那里做的事情。 pass是一个Python关键字,基本上等于一个空行。当你有一段你希望在调用时“传递”的代码时使用它。 pass现在只在代码中,因此可以解释它而不会出错。

这个任务在这个级别要求的是我认为只是一个'测试用例'列表。

想一想reverse_string函数可能会失败的几种方法。如果长度为0怎么办?如果长度很大怎么办?如果它有数字怎么办?如果混合案件怎么办?如果你不输入字符串怎么办?如果字符串完全相同怎么办?如果琴弦的长度不一样怎么办?等等。

所以你最终得到的代码如下:

if (is_reverse_of("food","doof") != True):
    print("Func is wrong!")