`

JUnit断言详解

阅读更多

1.JUnit4.4引入了Hamcrest框架,Hamcest提供了一套匹配符Matcher,这些匹配符更接近自然语言,可读性高,更加灵活;
2. 使用全新的断言语法:assertThat,结合Hamcest提供的匹配符,只用这一个方法,就可以实现所有的测试;
3.assertThat 语法如下:
    assertThat(T actual, Matcher<T> matcher);
    assertThat(String reason, T actual, Matcher<T> matcher);
    其 中actual为需要测试的变量,matcher为使用Hamcrest的匹配符来表达变量actual期望值的声明;
4.注意事项:
    a. 必须导入JUnit4.4之后的版本才能使用assertThat方法;
    b.不需要继承TestCase类,但是需要测试方法前必须加 “@Test”。

 

TTest.java:

01. package  cn.edu.ahau.mgc.junit4.test;
02.  
03. import  java.util.List;
04. import  java.util.Map;
05.  
06. import  org.junit.Test;
07. import  static  org.junit.Assert.*;
08. import  cn.edu.ahau.mgc.junit4.T;
09. import  static  org.hamcrest.Matchers.*;
10.  
11. public  class  TTest {
12.  
13.      @Test
14.      public  void  testAdd() {
15.           
16.          //一般匹配符
17.          int  s =  new  T().add( 1 1 );
18.          //allOf:所有条件必须都成立,测试才通过
19.          assertThat(s, allOf(greaterThan( 1 ), lessThan( 3 )));
20.          //anyOf:只要有一个条件成立,测试就通过
21.          assertThat(s, anyOf(greaterThan( 1 ), lessThan( 1 )));
22.          //anything:无论什么条件,测试都通过
23.          assertThat(s, anything());
24.          //is:变量的值等于指定值时,测试通过
25.          assertThat(s, is( 2 ));
26.          //not:和is相反,变量的值不等于指定值时,测试通过
27.          assertThat(s, not( 1 ));
28.           
29.          //数值匹配符
30.          double  d =  new  T().div( 10 3 );
31.          //closeTo:浮点型变量的值在3.0±0.5范围内,测 试通过
32.          assertThat(d, closeTo( 3.0 0.5 ));
33.          //greaterThan:变量的值大于指定值时,测试通过
34.          assertThat(d, greaterThan( 3.0 ));
35.          //lessThan:变量的值小于指定值时,测试通过
36.          assertThat(d, lessThan( 3.5 ));
37.          //greaterThanOrEuqalTo:变量的值大于等 于指定值时,测试通过
38.          assertThat(d, greaterThanOrEqualTo( 3.3 ));
39.          //lessThanOrEqualTo:变量的值小于等于指定 值时,测试通过
40.          assertThat(d, lessThanOrEqualTo( 3.4 ));
41.           
42.          //字符串匹配符
43.          String n =  new  T().getName( "Magci" );
44.          //containsString:字符串变量中包含指定字符串 时,测试通过
45.          assertThat(n, containsString( "ci" ));
46.          //startsWith:字符串变量以指定字符串开头时,测试通过
47.          assertThat(n, startsWith( "Ma" ));
48.          //endsWith:字符串变量以指定字符串结尾时,测试通过
49.          assertThat(n, endsWith( "i" ));
50.          //euqalTo:字符串变量等于指定字符串时,测试通过
51.          assertThat(n, equalTo( "Magci" ));
52.          //equalToIgnoringCase:字符串变量在忽略 大小写的情况下等于指定字符串时,测试通过
53.          assertThat(n, equalToIgnoringCase( "magci" ));
54.          //equalToIgnoringWhiteSpace:字符 串变量在忽略头尾任意空格的情况下等于指定字符串时,测试通过
55.          assertThat(n, equalToIgnoringWhiteSpace( " Magci   " ));
56.           
57.          //集合匹配符
58.          List<String> l =  new  T().getList( "Magci" );
59.          //hasItem:Iterable变量中含有指定元素时,测 试通过
60.          assertThat(l, hasItem( "Magci" ));
61.           
62.          Map<String, String> m =  new  T().getMap( "mgc" "Magci" );
63.          //hasEntry:Map变量中含有指定键值对时,测试通过
64.          assertThat(m, hasEntry( "mgc" "Magci" ));
65.          //hasKey:Map变量中含有指定键时,测试通过
66.          assertThat(m, hasKey( "mgc" ));
67.          //hasValue:Map变量中含有指定值时,测试通过
68.          assertThat(m, hasValue( "Magci" ));
69.      }
70.  
71. }
分享到:
评论

相关推荐

    单元测试JUnit常用断言方法

    ### 单元测试JUnit常用断言方法 #### JUnit简介 JUnit是一款用于Java语言的单元测试框架,由Kent Beck与Erich Gamma共同开发维护。它主要用于编写和运行可重复的测试案例,帮助开发者确保代码质量并及时发现潜在...

    Android Studio JUnit单元测试

    #### 四、JUnit断言详解 断言是单元测试中的核心概念之一。在JUnit中,断言用于检查预期结果是否与实际结果匹配。例如,在上述示例中,`assertEquals`就是一个常用的断言方法,用于验证两个值是否相等。 ```java ...

    Junit 3.8 详解(一)

    3. **断言(Assertions)**:JUnit 提供了一系列的断言方法,如assertEquals、assertTrue等,用于检查程序的预期结果是否符合实际结果。 4. **异常测试**:JUnit允许测试方法预期抛出特定的异常。如果方法没有抛出...

    JUnit常用断言方法.txt

    ### JUnit常用断言方法详解 #### 一、概述 JUnit 是一个用于编写和运行可重复测试的框架,主要用于Java程序的单元测试。在进行单元测试时,我们经常需要使用到断言方法来验证被测代码的行为是否符合预期。本文将...

    JUnit4详解

    JUnit4 还引入了异常断言,比如`assertThrows()`,可以检查方法是否抛出了预期的异常类型。例如: ```java @Test public void testDivideByZero() { assertThrows(ArithmeticException.class, () -&gt; { ...

    浪曦][原创]Junit.3.8.详解续二.rar

    3. **断言(Assertions)**:Junit提供了多种断言方法,如`assertEquals()`用于比较预期结果和实际结果,`assertTrue()`和`assertFalse()`用来验证条件是否为真或假。 4. **测试套件(Test Suites)**:通过`@Suite`...

    Junit 类包详解

    ### Junit 类包详解 #### Package framework Junit框架的核心包`junit.framework`包含了进行单元测试所需的多个关键类和接口。以下是对该包中重要类及接口的深入解析。 ##### Interface Test - **功能**: `Test`...

    junit各种断言

    ### JUnit中的各种断言详解 #### 一、概述 JUnit 是一个用于编写和运行可重复测试的框架,尤其适用于 Java 开发环境。它通过提供一系列的断言方法来帮助开发者确保代码按照预期的方式工作。这些断言方法可以帮助...

    Junit测试Void方法

    ### Junit 测试 Void 方法详解 在软件开发过程中,单元测试是确保代码质量的重要手段之一。JUnit 是 Java 开发者常用的单元测试框架,它能够帮助开发者编写自动化测试案例,从而提高代码的质量和可维护性。然而,...

    junit4教程(《Junit4初探》)

    JUnit4是JUnit系列的第四代产品,它引入了注解(Annotations)和断言(Assertions)等新特性,使得测试代码更加简洁易读。与JUnit3相比,JUnit4的灵活性和可扩展性得到了显著提升,使得测试驱动开发(TDD)在Java...

    对JUnit的一点简单讲解包括一点简单的Android JUnit的讲解

    3. 断言(Assertion):如`assertEquals`或`assertTrue`,用于检查代码预期的结果是否与实际结果相符。 4. 测试套件(Test Suite):可以组合多个测试类,通过`@RunWith(Suite.class)`和`@Suite.SuiteClasses`进行...

    浪曦][原创]Junit.3.8.详解续一.rar

    2. **断言(Assertions)**:Junit提供了多种断言方法,如assertEquals()用于比较预期结果和实际结果,assertTrue()和assertFalse()用于检查条件是否为真或假。 3. **设置和拆卸方法**:setUp()方法在每个测试方法...

    JUnit详解

    ### JUnit详解:深入探索单元测试工具的核心机制 JUnit作为一款知名的Java单元测试框架,其在软件开发领域占据着举足轻重的地位。本文旨在深入剖析JUnit的核心组件、方法及其实现原理,帮助读者全面理解JUnit如何...

    jUnit测试框架入门详解(加强版)

    jUnit 测试框架入门详解 jUnit 是一个开源的 Java 语言的单元测试框架,其专门针对 Java 语言设计,使用十分广泛。jUnit 已成事实上的标准单元测试框架(行业标准)。 jUnit 的优点包括:可以使用断言...

    Junit4使用教程详解+源码下载.rar

    JUnit4是JUnit系列的第四个主要版本,它引入了许多新特性,如注解(Annotations)、参数化测试、测试套件的改进以及更加灵活的断言机制。这些改进使得测试代码更加简洁、易于理解和维护。 二、注解在JUnit4中的应用...

    jUnit入门教程 jUnit教程

    - `assertThrows()`: 新版本的jUnit提供了这个方法,可以在断言中捕获并检查预期的异常。 七、参数化测试 `@Parameterized`注解允许你为同一个测试方法提供多组输入数据,以运行多次测试,适合于对多种情况的边界值...

    junit3.8jar以及源码以及测试案例详解.rar

    《Junit 3.8:深入理解与实践》 Junit是Java开发中不可或缺的单元测试框架,尤其在Junit 3.8版本中,它为开发者提供了强大的测试支持。本资源包含`junit3.8.jar`库文件、源代码及测试案例,旨在帮助开发者全面了解...

    junit_4.10.rar

    《JUnit 4.10详解:测试框架的里程碑版本》 JUnit是Java编程语言中最流行的单元测试框架之一,它的每一个版本都为开发者提供了更强大、更灵活的测试工具。本篇文章将聚焦于JUnit 4.10这一重要的里程碑版本,探讨它...

    junit4学习文档

    ### JUnit4 学习知识点详解 #### 一、JUnit4 概述 JUnit4 是 JUnit 测试框架的一个重大更新版本,它充分利用了 Java 5 的注解(Annotation)特性来简化测试用例的编写过程。注解是一种元数据,用于描述程序中的...

    junit5学习入门

    ### JUnit5学习入门知识点详解 #### 一、JUnit简介 JUnit是一个开源的Java单元测试框架,被广泛应用于软件开发中的测试驱动开发(TDD)流程之中。它支持开发者通过编写测试代码来验证软件功能是否符合预期,从而提高...

Global site tag (gtag.js) - Google Analytics