■ JUnit 4 常用的几个annotation
@Before:初始化方法,在任何一个测试执行之前必须执行的代码;
@After:释放资源,在任何测试执行之后需要进行的收尾工作。在每个测试方法执行之后执行一次,该annotation只能修饰public void 方法;
@Test:测试方法,表明这是一个测试方法。在Junit中将会自动被执行。该annotation只你呢个修饰public void 方法。
@Ignore:忽略的测试方法,标注的含义就是“某些方法尚未完成,暂不参与此次测试”;
@BeforeClass:针对所有测试,只执行一次,且必须为public static void;一般用于初始化必要的消耗较大的资源,例如数据库连接等
@AfterClass:针对所有测试,将会在所有测试方法执行结束后执行一次,且必须为public static void;
■ Junit常用的断言
//查看两个数组是否相等。
assertArrayEquals(expecteds, actuals)
//查看两个对象是否相等。类似于字符串比较使用的equals()方法
assertEquals(expected, actual)
//查看两个对象是否不相等。
assertNotEquals(first, second)
//查看对象是否为空。
assertNull(object)
//查看对象是否不为空。
assertNotNull(object)
//查看两个对象的引用是否相等。类似于使用“==”比较两个对象
assertSame(expected, actual)
//查看两个对象的引用是否不相等。类似于使用“!=”比较两个对象
assertNotSame(unexpected, actual)
//查看运行结果是否为true。
assertTrue(condition)
//查看运行结果是否为false。
assertFalse(condition)
//查看实际值是否满足指定的条件
assertThat(actual, matcher)
//让测试失败
fail()
■ 一般匹配方法 要求所有的条件都要通过测试才算成功 assertThat( testedNumber, allOf( greaterThan(8), lessThan(16) ) ); 配符表明如果接下来的所有条件必须都成立测试才通过,相当于“与”(&&) 接下来的所有条件只要有一个成立则测试通过 assertThat( testedNumber, anyOf( greaterThan(16), lessThan(8) ) ); 注释:anyOf匹配符表明如果接下来的所有条件只要有一个成立则测试通过,相当于“或”(||) 无论什么条件,永远为true assertThat( testedNumber, anything() ); 注释:anything匹配符表明无论什么条件,永远为true 等于判断 assertThat( testedString, is( “developerWorks” ) ); 注释: is匹配符表明如果前面待测的object等于后面给出的object,则测试通过 取反判断 assertThat( testedString, not( “developerWorks” ) ); 注释:not匹配符和is匹配符正好相反,表明如果前面待测的object不等于后面给出的object,则测试通过
■ 字符串相关匹配符 包含字符串 assertThat( testedString, containsString( “developerWorks” ) ); 注释:containsString匹配符表明如果测试的字符串testedString包含子字符串”developerWorks”则测试通过 以指定字符串结尾 assertThat( testedString, endsWith( “developerWorks” ) ); 注释:endsWith匹配符表明如果测试的字符串testedString以子字符串”developerWorks”结尾则测试通过 以指定字符串开始 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相关匹配符 map包含测试 assertThat( mapObject, hasEntry( “key”, “value” ) ); 注释:hasEntry匹配符表明如果测试的Map对象mapObject含有一个键值为”key”对应元素值为”value”的Entry项则测试通过 迭代对象包含测试 assertThat( iterableObject, hasItem ( “element” ) ); 注释:hasItem匹配符表明如果测试的迭代对象iterableObject含有元素“element”项则测试通过 map包含key测试 assertThat( mapObject, hasKey ( “key” ) ); 注释: hasKey匹配符表明如果测试的Map对象mapObject含有键值“key”则测试通过 map包含value测试 assertThat( mapObject, hasValue ( “key” ) ); 注释:hasValue匹配符表明如果测试的Map对象mapObject含有元素值“value”则测试通过