16.3.3 测试结果
测试有3种可能的结果,如表16-1所述。没有明确的方法让一个测试“通过”,所以一个测试的状态取决于是否出现异常。
import unittest
class OutcomesTest(unittest.TestCase):
def testPass(self):
return
def testFail(self):
self.assertFalse(True)
def testError(self):
raise RuntimeError('Test error!')
当一个测试失败或生成一个错误时,输出中会包含traceback。
在前面的例子中,testFail()失败,traceback显示了失败代码所在的那一行。不过,读测试输出的人要查看代码,并明确失败测试的含义。
import unittest
class FailureMessageTest(unittest.TestCase):
def testFail(self):
self.assertFalse(True,'failure message goes here')
为了更容易地理解一个测试失败的实质,fail*()和assert*()方法都接受一个参数msg,可以用来生成一个更详细的错误消息。