「javajunit断言」java断言assert
本篇文章给大家谈谈javajunit断言,以及java断言assert对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
Junit——Assert断言
junit.framework包下的Assert提供了多个断言方法. 主用于比较测试传递进去的两个参数.Assert断言的使用比较简单,主要有以下函数:
Assert.assertEquals([String message],T expected,T actual)
比较两个参数是否相等,message是可选的消息,假如加入了该参数,则发生错误时会报告该消息。如果 expected,actual,返回true。否则调用 expected.equals(actual)来判断。
Assert.assertNotEquals([String message],T expected,T actual)
比较两个参数是否不相等,message是可选的消息,假如加入了该参数,则发生错误时会报告该消息。
Assert.assertSame([String message],T expected,T actual)
以expected==actual运算的结果来判断。
expected.equals(actual) 和 expected==actual 的差别在于。如果expected没有重写java.lang.Object的equals方法,那么就是两个java对象的内存地址比较,比较结果和 expected==actual的结果相同。如果expected重写了equals方法(比如GregorianCalendar,BigDecimal类),那么比较的结果不一定和expected==actual的结果相同。
Assert.assertNotSame([String message],T expected,T actual)
以expected != actual运算的结果来判断。如果expected没有重写java.lang.Object的equals方法,那么就是两个java对象的内存地址比较,比较结果和 expected != actual的结果相同。如果expected重写了equals方法(比如GregorianCalendar,BigDecimal类),那么比较的结果不一定和expected !=actual的结果相同。
Assert.assertTrue([String message],boolean condition)
如果表达式condition结果为真,则测试通过,message为可选信息,若有则condition结果为假时显示message的内容
Assert.assertFalse([String message],boolean condition)
如果表达式condition结果为假,则测试通过,message为可选信息,若有则condition结果为真时显示message的内容
Assert.assertArrayEquals([String message], Object[] expected, Object[] actual)
以最直接的方式比较数组:如果数组长度相同,且每个对应的元素相同,则两个数组相等,否则不相等。数组为空的情况也作了考虑。message为可选信息,若不相等则会打印message。
Assert.assertNotNull([String message], Object object)
断言object为空,message为可选信息,若不为空打印message
Assert.assertNotNull([String message], Object object)
断言object不为空,message为可选信息,若为空打印message
Assert.assertThat([String reason],T actual, Matcher matcher)
其中actual为需要测试的变量,matcher为使用Hamcrest的匹配符来表达变量actual期望值的声明;assertThat是Junit 4.4加入的新方法,理论上讲程序员可以只使用 assertThat 一个断言语句,结合 Hamcrest 提供的匹配符,就可以表达全部的测试思想。
1、assertThat( T actual, allOf( greaterThan(number1), lessThan(numer2) ) )
allOf匹配符表明如果接下来的所有条件必须都成立测试才通过,相当于“与”()
2、assertThat( T actual, anyOf( greaterThan(number1), lessThan(number2) ) )
anyOf匹配符表明如果接下来的所有条件只要有一个成立则测试通过,相当于“或”(||)
3、assertThat( T actual, anything() )
anything匹配符表明无论什么条件,永远为true
4、assertThat( T actual, is(T expected ) )
is匹配符表明如果前面actual等于expected,则测试通过
5、assertThat( T actual, not( T expected ) )
not匹配符和is匹配符正好相反,表明如果actual不等于expected,则测试通过
6、assertThat(T actual,comparesEqualTo(T expected))
comparesEqualTo表示将actual和expected进行比较,只要在"数值"上相等即测试通过,比如1和1,"1"和"1"
1、assertThat( T actual, containsString( String s ) )
containsString匹配符表明如果测试的字符串actual包含子字符串s则测试通过
2、assertThat( String actual, endsWith( String s ) )
endsWith匹配符表明如果测试的字符串actual以子字符串s结尾则测试通过
3、assertThat( String actual, startsWith( String s ) )
startsWith匹配符表明如果测试的字符串actual以子字符串s开始则测试通过
4、assertThat( T actual, equalTo( T excepted ) )
equalTo匹配符表明如果actual等于excepted则测试通过,equalTo可以测试数值之间,字符串之间和对象之间是否相等,相当于Object的equals方法
5、assertThat( String actual, equalToIgnoringCase( String s ) )
equalToIgnoringCase匹配符表明如果actual在忽略大小写的情况下等于s则测试通过
6、assertThat( String actual, equalToIgnoringWhiteSpace( String s ) )
equalToIgnoringWhiteSpace匹配符表明如果actual在忽略头尾的任意个空格的情况下等于s则测试通过,注意:字符串中的空格不能被忽略
1、assertThat( T actual, closeTo( Number, precision ) )
closeTo匹配符表明如果所测试的浮点型数actual在Number±precision范围之内则测试通过
2、assertThat( T actual, greaterThan(Number) )
greaterThan匹配符表明如果所测试的数值actual大于Number则测试通过
3、assertThat( T actual, lessThan (Number) )
lessThan匹配符表明如果所测试的数值actual小于Number则测试通过
4、assertThat( T actual, greaterThanOrEqualTo (Number) )
greaterThanOrEqualTo匹配符表明如果所测试的数值actual大于等于Number则测试通过
5、assertThat( T actual, lessThanOrEqualTo (Number) )
lessThanOrEqualTo匹配符表明如果所测试的数值actual小于等于Number则测试通过
1、assertThat( mapObject, hasEntry( "key", "value" ) )
hasEntry匹配符表明如果测试的Map对象mapObject含有一个键值为"key"对应元素值为"value"的Entry项则测试通过
2、assertThat( iterableObject, hasItem ( "element" ) )
hasItem匹配符表明如果测试的迭代对象iterableObject含有元素“element”项则测试通过
3、assertThat( mapObject, hasKey ( "key" ) )
hasKey匹配符表明如果测试的Map对象mapObject含有键值“key”则测试通过
4、assertThat( mapObject, hasValue ( "key" ) )
hasValue匹配符表明如果测试的Map对象mapObject含有元素值“value”则测试通过
Java开发中什么时候使用断言?
Myeclipse中单元测试断言例子:
首先,建立Web Project,工程名为:JunitDemo,我选择的是Java EE 5。
然后建立包,包名为:demotest。
其次,在包下面建立一个Java CLass,也就是Java类,类名为:JunitDemo
下一步是在JunitDemo.java上面点击右键----NEW----OTHER,然后找到Java------JUint,然后里面就选择JUint Test Case。
如图:
这里,setup和teardown打上勾。
包就选择demotest,这样就和JuintDemo在一个包下面,Name就写 JunitDemoTest,好了。点击FINISH完成。,这个过程中就会自动安装Junit 3的包。
JunitDemoTest.java的内容为:
package demotest;
import junit.framework.TestCase;
public class JunitDemoTest extends TestCase {
protected void setUp() throws Exception {
super.setUp();
}
protected void tearDown() throws Exception {
super.tearDown();
}
public void testReturnstring() {
JunitDemo jd = new JunitDemo();
this.assertEquals("I'm good", jd.returnstring());
}
public static void main(String args[]){
System.out.println("测试环境。");
}
}
然后就是RUN as- -- Junit Test。这是看结果就好了,进度条为绿色就表示为,通过了,红色就是没有通过。
如图:
高级Java断言的用途?
断言是在Java1.4中引入的。它能让验证假设。如果断言失败(即返回false),就会抛出AssertionError(如果启用断言)。
java中断言是做什么用的
编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设
可以将断言看作是异常处理的一种高级形式
断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真
可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言。
使用断言可以创建更稳定,品质更好且易于除错的代码
当需要在一个值为FALSE时中断当前操作的话,可以使用断言
单元测试必须使用断言(Junit/JunitX)
除了类型检查和单元测试外,断言还提供了一种确定个种特性是否在程序中得到维护的极好的方法
使用断言使我们向按契约式设计更近了一部
javajunit断言的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java断言assert、javajunit断言的信息别忘了在本站进行查找喔。