本文共 1338 字,大约阅读时间需要 4 分钟。
昨天介绍了一下Junit 的简单用法,今天介绍一下断言的用法。
一、 如何生成测试类
(1) 选中要生成测试类的代码目录,也就是包。单击鼠标右键,在弹出的菜单中选择new-->Junit Test Case,如下图所示:
(2) 在添加新的Junit单元测试用例对话框中,Name处填写单元测试类的名称,一般情况下默认的命名规则是:要测试的类名+Test.java。在Class under test处选择要测试的类。如下图所示:
二、使用断言
断言通常用来在Junit中判断测试结果是否和预期值一致,比如说下面的一段代码。如果两个参数的和是8,则测试通过,反之则测试不通过。
1 2 3 4 5 6 7 8 | @Test public void testAdd() { //fail("Not yet implemented"); int sum = new T().add( 5 , 3 ); //判断程序运行结果是否与期望值一致 assertEquals( 8 , sum); } |
当测试结果是绿色时表示期望值与程序运行结果值一致,表示测试通过。这里可以看到有两个标志:errors和failures。error表示程序错误,failure表示断言测试没有通过,即期望值与当前测试结果不一致。如下图所示:
Junit中包含的断言方法有很多,这里不再一一赘述。这里介绍一种新的断言API,即 hamcrest.
三 hamcrest 的使用
hamcrests是个单元测试的API,里面包含很多单元测试的方法,其中断言的写法与Junit不相同,当时功能却比Junit丰富。例如下面的代码中的assertThat()方法的写法。如果sum的值小于8,则显示字符串"assertThat"。
1 2 3 4 5 6 7 8 9 10 | @Test public void testAdd2() { //fail("Not yet implemented"); int sum = new T().add( 5 , 3 ); //判断程序运行结果是否与期望值一致 assertEquals( 8 , sum); //assertTrue("This is TestString",8>sum); assertThat( "assertThat" , 8 >sum); } |
hamcrest 有很多断言的写法,例如:
1 2 3 4 5 6 | //判断n的值是否比1大,比15小 assertThat(n, allOf( greaterThan( 1 ), lessThan( 15 ))); //判断n的值是否比16大,或者是否比8小 assertThat(n, anyOf( greaterThan( 16 ), lessThan( 8 ))); //判断n的值是否以“xxxx”结尾 assertThat(str, endsWith( "xxxx" )); |
关于其它断言的具体写法这里不再讨论,感兴趣的朋友可以下载hamcrest 的API文档进行详细研究。
转载地址:http://grtbx.baihongyu.com/