通常匹配符
一、assertThat( testedNumber, allOf( greaterThan(8), lessThan(16) ) );java
註釋: allOf匹配符代表若是接下來的全部條件必須都成立測試才經過,至關於「與」(&&)框架
二、assertThat( testedNumber, anyOf( greaterThan(16), lessThan(8) ) );less
註釋:anyOf匹配符代表若是接下來的全部條件只要有一個成立則測試經過,至關於「或」(||)
三、assertThat( testedNumber, anything() );dom
註釋:anything匹配符代表不管什麼條件,永遠爲true
四、assertThat( testedString, is( "developerWorks" ) );測試
註釋: is匹配符代表若是前面待測的object等於後面給出的object,則測試經過
五、assertThat( testedString, not( "developerWorks" ) );ui
註釋:not匹配符和is匹配符正好相反,代表若是前面待測的object不等於後面給出的object,則測試經過
字符串相關匹配符
一、assertThat( testedString, containsString( "developerWorks" ) );.net
註釋:containsString匹配符代表若是測試的字符串testedString包含子字符串"developerWorks"則測試經過rest
二、assertThat( testedString, endsWith( "developerWorks" ) ); 對象
註釋:endsWith匹配符代表若是測試的字符串testedString以子字符串"developerWorks"結尾則測試經過blog
三、assertThat( testedString, startsWith( "developerWorks" ) );
註釋:startsWith匹配符代表若是測試的字符串testedString以子字符串"developerWorks"開始則測試經過
四、assertThat( testedValue, equalTo( expectedValue ) );
註釋: equalTo匹配符代表若是測試的testedValue等於expectedValue則測試經過,equalTo能夠測試數值之間,字
符串之間和對象之間是否相等,至關於Object的equals方法
五、assertThat( testedString, equalToIgnoringCase( "developerWorks" ) );
註釋:equalToIgnoringCase匹配符代表若是測試的字符串testedString在忽略大小寫的狀況下等於"developerWorks"則測試經過
六、assertThat( testedString, equalToIgnoringWhiteSpace( "developerWorks" ) );
註釋:equalToIgnoringWhiteSpace匹配符代表若是測試的字符串testedString在忽略頭尾的任意個空格的狀況下等
於"developerWorks"則測試經過,注意:字符串中的空格不能被忽略
數值相關匹配符
一、assertThat( testedDouble, closeTo( 20.0, 0.5 ) );
註釋:closeTo匹配符代表若是所測試的浮點型數testedDouble在20.0±0.5範圍以內則測試經過
二、assertThat( testedNumber, greaterThan(16.0) );
註釋:greaterThan匹配符代表若是所測試的數值testedNumber大於16.0則測試經過
三、assertThat( testedNumber, lessThan (16.0) );
註釋:lessThan匹配符代表若是所測試的數值testedNumber小於16.0則測試經過
四、assertThat( testedNumber, greaterThanOrEqualTo (16.0) );
註釋: greaterThanOrEqualTo匹配符代表若是所測試的數值testedNumber大於等於16.0則測試經過
五、assertThat( testedNumber, lessThanOrEqualTo (16.0) );
註釋:lessThanOrEqualTo匹配符代表若是所測試的數值testedNumber小於等於16.0則測試經過
collection相關匹配符
一、assertThat( mapObject, hasEntry( "key", "value" ) );
註釋:hasEntry匹配符代表若是測試的Map對象mapObject含有一個鍵值爲"key"對應元素值爲"value"的Entry項則測試經過
二、assertThat( iterableObject, hasItem ( "element" ) );
註釋:hasItem匹配符代表若是測試的迭代對象iterableObject含有元素「element」項則測試經過
三、assertThat( mapObject, hasKey ( "key" ) );
註釋: hasKey匹配符代表若是測試的Map對象mapObject含有鍵值「key」則測試經過
四、assertThat( mapObject, hasValue ( "key" ) );
註釋:hasValue匹配符代表若是測試的Map對象mapObject含有元素值「value」則測試經過
-------------------------------------------------------------------------------------------------------------------------------
JUnit4.4引入了Hamcrest框架,Hamcest提供了一套匹配符Matcher,這些匹配符更接近天然語言,可讀性高,更加靈活
/**equalTo匹配符斷言被測的testedValue等於expectedValue,
* equalTo能夠斷言數值之間,字符串之間和對象之間是否相等,至關於Object的equals方法
*/
assertThat(testedValue, equalTo(expectedValue));
/**equalToIgnoringCase匹配符斷言被測的字符串testedString
*在忽略大小寫的狀況下等於expectedString
*/
assertThat(testedString, equalToIgnoringCase(expectedString));
/**equalToIgnoringWhiteSpace匹配符斷言被測的字符串testedString
*在忽略頭尾的任意個空格的狀況下等於expectedString,
*注意:字符串中的空格不能被忽略
*/
assertThat(testedString, equalToIgnoringWhiteSpace(expectedString);
/**containsString匹配符斷言被測的字符串testedString包含子字符串subString**/
assertThat(testedString, containsString(subString) );
/**endsWith匹配符斷言被測的字符串testedString以子字符串suffix結尾*/
assertThat(testedString, endsWith(suffix));
/**startsWith匹配符斷言被測的字符串testedString以子字符串prefix開始*/
assertThat(testedString, startsWith(prefix));
/**nullValue()匹配符斷言被測object的值爲null*/
assertThat(object,nullValue());
/**notNullValue()匹配符斷言被測object的值不爲null*/
assertThat(object,notNullValue());
/**is匹配符斷言被測的object等於後面給出匹配表達式*/
assertThat(testedString, is(equalTo(expectedValue)));
/**is匹配符簡寫應用之一,is(equalTo(x))的簡寫,斷言testedValue等於expectedValue*/
assertThat(testedValue, is(expectedValue));
/**is匹配符簡寫應用之二,is(instanceOf(SomeClass.class))的簡寫,
*斷言testedObject爲Cheddar的實例
*/
assertThat(testedObject, is(Cheddar.class));
/**not匹配符和is匹配符正好相反,斷言被測的object不等於後面給出的object*/
assertThat(testedString, not(expectedString));
/**allOf匹配符斷言符合全部條件,至關於「與」(&&)*/
assertThat(testedNumber, allOf( greaterThan(8), lessThan(16) ) );
/**anyOf匹配符斷言符合條件之一,至關於「或」(||)*/
assertThat(testedNumber, anyOf( greaterThan(16), lessThan(8) ) );
/**closeTo匹配符斷言被測的浮點型數testedDouble在20.0¡À0.5範圍以內*/
assertThat(testedDouble, closeTo( 20.0, 0.5 ));
/**greaterThan匹配符斷言被測的數值testedNumber大於16.0*/
assertThat(testedNumber, greaterThan(16.0));
/** lessThan匹配符斷言被測的數值testedNumber小於16.0*/
assertThat(testedNumber, lessThan (16.0));
/** greaterThanOrEqualTo匹配符斷言被測的數值testedNumber大於等於16.0*/
assertThat(testedNumber, greaterThanOrEqualTo (16.0));
/** lessThanOrEqualTo匹配符斷言被測的testedNumber小於等於16.0*/
assertThat(testedNumber, lessThanOrEqualTo (16.0));
/**hasEntry匹配符斷言被測的Map對象mapObject含有一個鍵值爲"key"對應元素值爲"value"的Entry項*/
assertThat(mapObject, hasEntry("key", "value" ) );
/**hasItem匹配符代表被測的迭代對象iterableObject含有元素element項則測試經過*/
assertThat(iterableObject, hasItem (element));
/** hasKey匹配符斷言被測的Map對象mapObject含有鍵值「key」*/
assertThat(mapObject, hasKey ("key"));
/** hasValue匹配符斷言被測的Map對象mapObject含有元素值value*/
assertThat(mapObject, hasValue(value));
---------------------------------------------------------------------------------------------------------------------------