fbpx
维基百科

Hamcrest

Hamcrest是一个协助编写用Java语言进行软件测试的框架。它支持创建自定义的断言匹配器(assertion matchers)(名称“Hamcrest”即为“matchers”的异位构词),允许声明式定义匹配规则。[1]这些匹配器在单元测试框架(例如JUnit[2]和jMock)中有用。

Hamcrest已经被移植到JavaC++Objective-CPythonActionScript 3[3]PHP[4]JavaScript[5]Erlang.[6]

解释

“第一代”的单元测试框架提供了一个断言表达式,允许一个一个测试在特定条件下断言必须为真。如果断言为假,则测试失败。例如:

assert(x == y); 

但是在这种语法下,如果“x”和“y”的是不相等的,产生错误信息不够好——如果错误消息中显示“x”和“y”的值就更好了。 为了解决这个问题,“第二代”单元测试框架提供了一组断言语句,从而产生更好的错误消息。例如,

assert_equal(x, y); assert_not_equal(x, y); 

但是,由于上述断言语句被扩展以支持不同于简单的相等比较的比较方式,这导致了断言宏的数量爆炸。因此,“第三代”单元测试框架使用函式庫,如Hamcrest,来支持“assert_that”操作符,操作符可与匹配器(matcher)对象进行组合,从而致使语法像这样:

assert_that(x, equal_to(y)) assert_that(x, is_not(equal_to(y))) 

好处是,当断言失败时你仍然可以顺畅的得到错误消息,不过现在你有了更大的可扩展性。现在可以自定义一种操作,采取匹配器作为参数并将返回结果,即形成一种可以从少量原始的匹配器生成大量可能的匹配表达式的语法。

这些高级匹配器的操作包括逻辑连接词(“与”、“或”、“非”),以及遍历集合的操作。这形成了功能强大的匹配器语言,它允许对集合进行复杂的断言判断,表达式写在一个声明中,而不是一个程序中。

参考文献

  1. ^ The Hamcrest Tutorial. [2014-07-15]. (原始内容于2014-07-29). 
  2. ^ . [2014-07-15]. (原始内容存档于2012-10-14). 
  3. ^ Hamcrest-AS3. [2014-07-15]. (原始内容于2016-02-19). 
  4. ^ Hamcrest - Google Code. [2014-07-15]. (原始内容于2009-02-25). 
  5. ^ Hamcrest4Qunit. [2014-07-15]. (原始内容于2018-06-11). 
  6. ^ Hamcrest Erlang. [2014-07-15]. (原始内容于2013-12-26). 

外部链接

hamcrest, 是一个协助编写用java语言进行软件测试的框架, 它支持创建自定义的断言匹配器, assertion, matchers, 名称, 即为, matchers, 的异位构词, 允许声明式定义匹配规则, 这些匹配器在单元测试框架, 例如junit, 和jmock, 中有用, 已经被移植到java, objective, python, actionscript, javascript, 和erlang, 解释, 编辑, 第一代, 的单元测试框架提供了一个断言表达式, 允许一个一个测试在特定条件下断言. Hamcrest是一个协助编写用Java语言进行软件测试的框架 它支持创建自定义的断言匹配器 assertion matchers 名称 Hamcrest 即为 matchers 的异位构词 允许声明式定义匹配规则 1 这些匹配器在单元测试框架 例如JUnit 2 和jMock 中有用 Hamcrest已经被移植到Java C Objective C Python ActionScript 3 3 PHP 4 JavaScript 5 和Erlang 6 解释 编辑 第一代 的单元测试框架提供了一个断言表达式 允许一个一个测试在特定条件下断言必须为真 如果断言为假 则测试失败 例如 assert x y 但是在这种语法下 如果 x 和 y 的是不相等的 产生错误信息不够好 如果错误消息中显示 x 和 y 的值就更好了 为了解决这个问题 第二代 单元测试框架提供了一组断言语句 从而产生更好的错误消息 例如 assert equal x y assert not equal x y 但是 由于上述断言语句被扩展以支持不同于简单的相等比较的比较方式 这导致了断言宏的数量爆炸 因此 第三代 单元测试框架使用函式庫 如Hamcrest 来支持 assert that 操作符 操作符可与匹配器 matcher 对象进行组合 从而致使语法像这样 assert that x equal to y assert that x is not equal to y 好处是 当断言失败时你仍然可以顺畅的得到错误消息 不过现在你有了更大的可扩展性 现在可以自定义一种操作 采取匹配器作为参数并将返回结果 即形成一种可以从少量原始的匹配器生成大量可能的匹配表达式的语法 这些高级匹配器的操作包括逻辑连接词 与 或 非 以及遍历集合的操作 这形成了功能强大的匹配器语言 它允许对集合进行复杂的断言判断 表达式写在一个声明中 而不是一个程序中 参考文献 编辑 The Hamcrest Tutorial 2014 07 15 原始内容存档于2014 07 29 JUnit 4 5 is released 2014 07 15 原始内容存档于2012 10 14 Hamcrest AS3 2014 07 15 原始内容存档于2016 02 19 Hamcrest Google Code 2014 07 15 原始内容存档于2009 02 25 Hamcrest4Qunit 2014 07 15 原始内容存档于2018 06 11 Hamcrest Erlang 2014 07 15 原始内容存档于2013 12 26 外部链接 编辑https github com hamcrest 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title Hamcrest amp oldid 63128260, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。