使用PyHamcrest执行健壮的单元测试
副问题[/!--empirenews.page--]
行使此框架编写断言,进步开拓测试的精确性。 在测试金字塔的底部是单位测试。单位测试每次只测试一个代码单位,凡是是一个函数或要领。 凡是,计划单个单位测试是为了测试通过一个函数或特定分支的特定执行流程,这使得将失败的单位测试和导致失败的 bug 对应起来变得轻易。 抱负环境下,单位测试很少行使或不行使外部资源,从而断绝它们并使它们更快。 单位测试套件通过在开拓进程的早期发明题目来辅佐维护高质量的产物。有用的单位测试可以在代码分开开拓职员呆板之前捕捉 bug,可能至少可以在特定分支上的一连集成情形中捕捉 bug。这符号着好的和坏的单位测试之间的区别:好的测试通过尽早捕捉 bug 并使测试更快来进步开拓职员的出产力。坏的测试低落了开拓职员的事变服从。 当测试附带的特征时,出产率凡是会低落。今世码变动时测试会失败,纵然它如故是正确的。产生这种环境是由于输出的差异,但在某种水平上是由于它不是函数左券的一部门。 因此,一个好的单位测试可以辅佐执行函数所提交的左券。 假如单位测试间断,那意味着该左券被违背了,应该(通过变动文档和测试)明晰修改,可能(通过修复代码并保持测试稳固)来修复。 固然将测试限定为只执行民众左券是一项必要进修的伟大手艺,但有一些器材可以提供辅佐。 个中一个器材是 Hamcrest,这是一个用于编写断言的框架。最初是为基于 Java 的单位测试而发现的,但它此刻支持多种说话,包罗 Python。 Hamcrest 旨在使测试断言更轻易编写和更准确。
这是一个用于简朴函数的断言。假如我们想要断言更伟大的函数怎么办?
留意,我们可以简朴地断言其功效是任何次序的 我们也可以很轻易用 然而,偶然辰,内置的成果都不是我们真正必要的。在这些环境下,Hamcrest 应承我们编写本身的匹配器。 想象一下以下成果:
我们可以自信地断言其功效匀称地分派到至少一个输入。 匹配器担任自
编写高质量的
凭证老例,我们将匹配器包装在一个函数中。偶然这给了我们进一步处理赏罚输入的机遇,但在这种环境下,我们不必要进一步处理赏罚。
请留意,我们将 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |