junit测试中各种断⾔⽤法
基动漫junit要注意的细节:
1. 如果使⽤junit测试⼀个⽅法的时候,在junit窗⼝上显⽰绿条那么代表测试正确,
如果是出现了红条,则代表该⽅法测试出现了异常不通过。
2. 如果点击⽅法名、 类名、包名、 ⼯程名运⾏junit分别测试的是对应的⽅法,类、 包中 的所有类的test⽅法,⼯程中的所有test⽅法。
3. @Test测试的⽅法不能是static修饰与不能带有形参。
4. 如果测试⼀个⽅法的时候需要准备测试的环境或者是清理测试的环境,那么可以@Before、 @After 、@BeforeClass、 @AfterClass 这四个注解。
@Before、 @After 是在每个测试⽅法测试的时候都会调⽤⼀次, @BeforeClass、 @AfterClass是在所有的测试⽅法测试之前与测试之后调⽤⼀次⽽已。
junit使⽤规范:
1. ⼀个类如果需要测试,那么该类就应该对应着⼀个测试类,测试类的命名规范 : 被测试类的类名+ Test.
2. ⼀个被测试的⽅法⼀般对应着⼀个测试的⽅法,测试的⽅法的命名规范是: test+ 被测试的⽅法的⽅法名
但是⼀般来说为了简化测试,会直接在源程序上直接进⾏测试,但是测完之后必须删除,以免影响测试效果。
⼀、常⽤断⾔(Asrt类的asrt⽅法)
1、asrtArrayEquals([String message],expecteds, actuals)
查看两个数组是否相等。
2、asrtEquals([String message],expected, actual)
查看两个对象是否相等。类似于字符串⽐较使⽤的equals()⽅法
函数原型1:asrtEquals([String message],expected,actual)
激活饮料
函数原型2:asrtEquals([String message],expected,actual,tolerance)
参数说明: message是个可选的消息,假如提供,将会在发⽣错误时报告这个消息。
expected是期望值,通常都是⽤户指定的内容。 actual是被测试的代码返回的实际值。
tolerance是误差参数,参加⽐较的两个浮点数在这个误差之内则会被认为是相等的。
3、asrtNotEquals([String message],first, cond)
查看两个对象是否不相等。
4、asrtNull([String message],object)
该断⾔⽤来验证给定的对象是否为null,假如不为null,则验证失败
函数原型:asrtNull([String message],Object object)
参数说明: message是个可选的消息,假如提供,将会在发⽣错误时报告这个消息。 object是待验证的对象。
5、asrtNotNull([String message],object)
防诈骗口诀
查看对象是否不为空。
6、asrtSame([String message],expected, actual)
查看两个对象的引⽤是否相等(expected参数和actual参数所引⽤的是否是同⼀个对象)。类似于使⽤“==”⽐较两个对象
7、asrtNotSame([String message],unexpected, actual)
查看两个对象的引⽤是否不相等。类似于使⽤“!=”⽐较两个对象
8、asrtTrue([String message],condition)
查看运⾏结果是否为true。
9、asrtFal([String message],condition)
查看运⾏结果是否为fal。
10、asrtThat(actual, matcher)
查看实际值是否满⾜指定的条件
11、fail()
说普通话的好处让测试失败,该断⾔会使测试⽴即失败,通常⽤在测试不能达到的分⽀上(如异常)。
JUnit中 asrtThat 的使⽤
㈠ ⼀般匹配符
1、allOf
匹配符表明如果接下来的所有条件必须都成⽴测试才通过,相当于“与”(&&)
asrtThat( testedNumber, allOf( greaterThan(8), lessThan(16) ) );
2、anyOf
匹配符表明如果接下来的所有条件只要有⼀个成⽴则测试通过,相当于“或”(||)asrtThat( testedNumber, anyOf( greaterThan(16), lessThan(8) ) );
3、anything
照烧酱的制作方法
匹配符表明⽆论什么条件,永远为true
网红天佑asrtThat( testedNumber, anything() );
4、is
匹配符表明如果前⾯待测的object等于后⾯给出的object,则测试通过
asrtThat( testedString, is( “developerWorks” ) );
5、not
匹配符和is匹配符正好相反,表明如果前⾯待测的object不等于后⾯给出的object,则测试通过asrtThat( testedString, not( "developerWorks" ) );
㈡ 字符串相关匹配符
1、containsString
匹配符表明如果测试的字符串testedString 包含 ⼦字符串"developerWorks"则测试通过
asrtThat( testedString, containsString( "developerWorks" ) );
2、endsWith
匹配符表明如果测试的字符串testedString以⼦字符串"developerWorks"结尾则测试通过
asrtThat( testedString, endsWith( "developerWorks" ) );
3、startsWith
匹配符表明如果测试的字符串testedString以⼦字符串"developerWorks"开始则测试通过
asrtThat( testedString, startsWith( "developerWorks" ) );
4、equalTo
匹配符表明如果测试的testedValue等于expectedValue则测试通过,equalTo可以测试数值之间,字符串
之间和对象之间是否相等,相当于Object的equals⽅法
asrtThat( testedValue, equalTo( expectedValue ) );
笃定5、equalToIgnoringCa
匹配符表明如果测试的字符串testedString在忽略⼤⼩写的情况下等于"developerWorks"则测试通过
asrtThat( testedString, equalToIgnoringCa( "developerWorks" ) );
6、equalToIgnoringWhiteSpace
匹配符表明如果测试的字符串testedString在忽略头尾的任意个空格的情况下等于"developerWorks"则
测试通过,注意:字符串中的空格不能被忽略
asrtThat( testedString, equalToIgnoringWhiteSpace( "developerWorks" ) );
㈢ 数值相关匹配符
1、cloTo
匹配符表明如果所测试的浮点型数testedDouble在20.0±0.5范围之内则测试通过
asrtThat( testedDouble, cloTo( 20.0, 0.5 ) );
2、greaterThan
匹配符表明如果所测试的数值testedNumber⼤于16.0则测试通过
每日一问asrtThat( testedNumber, greaterThan(16.0) );
3、lessThan
匹配符表明如果所测试的数值testedNumber⼩于16.0则测试通过
asrtThat( testedNumber, lessThan (16.0) );
4、greaterThanOrEqualTo
匹配符表明如果所测试的数值testedNumber⼤于等于16.0则测试通过
asrtThat( testedNumber, greaterThanOrEqualTo (16.0) );
5、lessThanOrEqualTo
匹配符表明如果所测试的数值testedNumber⼩于等于16.0则测试通过
asrtThat( testedNumber, lessThanOrEqualTo (16.0) );
㈣ collection相关匹配符
1、hasEntry
匹配符表明如果测试的Map对象mapObject含有⼀个键值为"key"对应元素值为"value"的Entry项则测试通过 asrtThat( mapObject, hasEntry( "key", "value" ) );
2、hasItem
匹配符表明如果测试的迭代对象iterableObject含有元素“element”项则测试通过 asrtThat( iterableObject, hasItem ( "element" ) );
3、hasKey
匹配符表明如果测试的Map对象mapObject含有键值“key”则测试通过
asrtThat( mapObject, hasKey ( "key" ) );
4、hasValue
匹配符表明如果测试的Map对象mapObject含有元素值“value”则测试通过
asrtThat( mapObject, hasValue ( "value" ) );