Python - 如何使用其他函数创建测试函数?

时间:2015-03-01 02:22:51

标签: python debugging testing

我很难尝试将另一个函数用于测试我用print语句添加的函数的函数。例如,使用此函数可以反转字符串。我想在另一个测试反向函数的函数中使用print语句,但是我很难理解如何将is_reverse函数合并到测试函数中而不在测试函数中添加参数。

def is_reverse( st1, st2 ):
    if len( st1 ) != len( st2 ):
        return False
    i = 0
    j = len( st2 ) - 1
    while j > 0:
        if st1[i] != st2[j]:
            return False
        i += 1
        j -= 1
    return True

def test_is_reverse( ):
    print( "is_reverse( \"hey\", \"yah\" ) == False.\"" )
    print( "is_reverse( \"man\", \"nam\" ) == True.\"" )

2 个答案:

答案 0 :(得分:1)

一种方法是传递要用于打印错误消息的函数作为测试函数的参数。

有些事情:

def my_print_func (errmsg):
    print (errmsg)

def test_is_reverse(f ):
    f( "is_reverse( \"hey\", \"yah\" ) == False.\"" )
    f( "is_reverse( \"man\", \"nam\" ) == True.\"" )

要进行测试,请执行以下操作:

 test_is_reverse(my_print_func)

那就是说,你应该避免重新发明轮子并使用Python unittest框架,参见https://docs.python.org/2/library/unittest.html

答案 1 :(得分:0)

您可以设置一个功能来运行测试并打印结果:

def test_is_reverse(st1, st2):
    # Define tests here, for example:
    print st1, st2, is_reverse(st1,st2), is_reverse(st2, st1)
    print is_reverse(st1,st1) == is_reverse(sty, st1)