我有一个python函数测试来测试我的代码。 '得到和期望的字符串是相同的,但是当我通过下面的方法检查它时,它给出X而不是OK
编辑:包括父函数和调用
def donuts(count):
if count <=10 :
print 'Number of donuts:',count
else :
print 'Number of donuts: many'
return
def test(got, expected):
if got == expected:
prefix = ' OK '
else:
prefix = ' X '
print '%s got: %s expected: %s' % (prefix, repr(got), repr(expected))
return
哪里得到和预期对我来说都是一样的,我错过了什么吗? 删除了O / p,因为它具有误导性: 函数声明如下:
test(donuts("11"), "Number of donuts: many")
答案 0 :(得分:2)
donuts("11")
会打印"Number of donuts: many"
,但会返回None
。
test(donuts("11"), "Number of donuts: many")
正在比较不相等的None
和"Number of donuts: many"
。如果您想使此代码有效,请将donuts()
函数更改为:
def donuts(count):
if count <=10 :
return 'Number of donuts: %s' % count
else :
return 'Number of donuts: many'
您的test()
函数中还有一个缩进错误,导致打印仅在其他条件下运行。