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