如何解决肯特·贝克Kent BeckxUnit示例中的拆解逻辑
我一直在研究Kent Beck的示例驱动测试开发,尤其是xUnit示例(第18-24章)。我对拆卸功能有一些疑问。最初,测试运行流程是通过以下方法在类run()
上作为方法TestCase
实现的
def run(self):
result = TestResult()
result.testStarted()
self.setUp()
method = self.getattr(self,self.name)
method()
self.tearDown()
return result
完成此操作后,他会作为练习供读者更改方法run()
,以便即使method()
失败时也要执行拆卸逻辑。
但是,在下一章(处理失败)中,方法run()
进行了扩展以记录测试失败:
def run(self):
result = TestResult()
result.testStarted()
self.setUp()
try:
method = self.getattr(self,self.name)
method()
except:
result.testFailed()
self.tearDown()
return result
此编辑后,与拆解逻辑有关的项目仍在待办事项列表上打开,但对我来说问题似乎已解决。 except
子句尽可能地笼统,并且操作result.testFailed()
绝不会引发异常。因此,在我看来,无论method()
可以做什么,拆卸逻辑都会始终被执行。我可以想象将拆解放在finally
子句中,以更好地表示意图,并且对testFailed()
中的更改更加健壮,但是当{{1 }}有这种形式吗?
解决方法
本练习可以帮助您学习。它为“应对失败”做好了准备。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。