我有以下方法用于测试bc
unix 命令......它需要一个表达式,执行它并取回输出......
def run_test(expr=""):
try:
process = sp.Popen('bc',
stdin=sp.PIPE,
stdout=sp.PIPE,
stderr=sp.PIPE)
process.stdin.write(expr)
result = process.stdout.readline()
process.stdin.close()
retval = process.wait()
return result
except Exception, e:
print e
# correct expression, returns '4'
print run_test('2+2\n')
但是,当我传递错误的表达式时expr
,我想正确处理错误,因此我可以断言测试用例expr
正确失败......
#never stops
print run_test('2 / 0\n')
但是,上面的表达式永远不会返回......我想返回一个值,例如 false,它会告诉我表达式无效,然后当我断言时,
assertTrue(run_test('2 / 0\n'), False)
会正常工作......我怎样才能实现它?