Junit (二) 断言

简介:

    昨天介绍了一下Junit 的简单用法,今天介绍一下断言的用法。


一、 如何生成测试类

(1) 选中要生成测试类的代码目录,也就是包。单击鼠标右键,在弹出的菜单中选择new-->Junit Test Case,如下图所示:

6cc0d67b52662f84f0ed1301130d5377.png-wh_

(2)  在添加新的Junit单元测试用例对话框中,Name处填写单元测试类的名称,一般情况下默认的命名规则是:要测试的类名+Test.java。在Class under test处选择要测试的类。如下图所示:

624da9acaf2b9fa4cf50a67e55272099.png-wh_


二、使用断言

    断言通常用来在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表示断言测试没有通过,即期望值与当前测试结果不一致。如下图所示:

889e17b86262b66b921bd505def974a0.png-wh_

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文档进行详细研究。


本文转自 乌英达姆 51CTO博客,原文链接:http://blog.51cto.com/7156680/1978277


相关文章
|
2月前
|
测试技术
如何使用 JUnit 测试方法是否存在异常
【8月更文挑战第22天】
27 0
|
11月前
|
Java
Junit4中的新断言assertThat的使用方法
Junit4中的新断言assertThat的使用方法
155 0
|
测试技术
Junit单元测试为什么不能有返回值?
Junit单元测试为什么不能有返回值?
113 0
|
Java 测试技术 BI
软件测试|Hamcrest断言
软件测试|Hamcrest断言
102 0
软件测试|Hamcrest断言
|
JSON Java 测试技术
07、单元测试值Junit5
07、单元测试值Junit5
07、单元测试值Junit5