Python - 如何使用另一个函数创建测试函数?

Python - How do I create a test function by using another function?

我很难尝试将另一个函数用于测试我用 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.\"" )

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

大致如下:

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

您可以设置一个函数来 运行 您的测试并打印结果:

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)