加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

使用PyHamcrest执行健壮的单元测试

发布时间:2019-01-31 05:06:19 所属栏目:建站 来源:Moshe Zadka
导读:行使此框架编写断言,进步开拓测试的精确性。 在测试金字塔的底部是单位测试。单位测试每次只测试一个代码单位,凡是是一个函数或要领。 凡是,计划单个单位测试是为了测试通过一个函数或特定分支的特定执行流程,这使得将失败的单位测试和导致失败的 bug

在编辑这篇文章时,我听到一个传言,取 “Hamcrest” 这个名字是由于它是 “matches” 字母构成的字谜。嗯…

  1. >>> assert_that("matches", contains_inanyorder(*"hamcrest")
  2. Traceback (most recent call last):
  3.   File "<stdin>", line 1, in <module>
  4.   File "/home/moshez/src/devops-python/build/devops/lib/python3.6/site-packages/hamcrest/core/assert_that.py", line 43, in assert_that
  5.     _assert_match(actual=arg1, matcher=arg2, reason=arg3)
  6.   File "/home/moshez/src/devops-python/build/devops/lib/python3.6/site-packages/hamcrest/core/assert_that.py", line 57, in _assert_match
  7.     raise AssertionError(description)
  8. AssertionError:
  9. Expected: a sequence over ['h', 'a', 'm', 'c', 'r', 'e', 's', 't'] in any order
  10.       but: no item matches: 'r' in ['m', 'a', 't', 'c', 'h', 'e', 's']

颠末进一步的研究,我找到了传言的来历:它是 “matchers” 字母构成的字谜。

  1. >>> assert_that("matchers", contains_inanyorder(*"hamcrest"))
  2. >>>

假如你还没有为你的 Python 代码编写单位测试,那么此刻是开始的好机缘。假如你正在为你的 Python 代码编写单位测试,那么行使 Hamcrest 将应承你使你的断言越发准确,既不会比你想要测试的多也不会少。这将在修改代码时镌汰误报,并镌汰修改事变代码的测试所耗费的时刻。

【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读