`

Junit4使用汇总(一)基础

 
阅读更多

看了三天的Junit,基本用法汇如下:

 

一、基础篇:

 JUnit4引入了Java5的注释Annotation。常用的注释如下:

名称 用途
@Test 
方法前加,表示要执行的testcase
@Before tesecase 运行前执行
@After testcase运行后执行
@BeforeClass 类运行前执行
 @AfterClass 类运行后执行
@Ignore 表示暂时不想执行这个testcase
@RunWith   指定一个Runner来运行你的代码
@Rule  后面有专门分析
   

更详细及相关例子可参考

http://blog.csdn.net/ccjjyy/article/details/6175498

 

二、JUnit4的核心之一:断言

   assertArrayEquals
   assertEquals     : expected.equals(actual) 

   assertSame       :expected == actual
   assertFalse
   assertNotNull
   assertNotSame
   assertNull
   assertThat org.junit.Assert.assertThat("albumen", both(containsString("a")).and(containsString("b")));
    org.junit.Assert.assertThat(Arrays.asList("one", "two", "three"), hasItems("one", "three"));
    org.junit.Assert.assertThat(Arrays.asList(new String[] { "fun", "ban", "net" }), everyItem(containsString  ("n")));
  assertThat("good", allOf(equalTo("good"), startsWith("good")));
    assertThat("good", not(allOf(equalTo("bad"), equalTo("good"))));
    assertThat("good", anyOf(equalTo("bad"), equalTo("good")));
    assertThat(7, not(CombinableMatcher.<Integer> either(equalTo(3)).or(equalTo(4))));
    assertThat(new Object(), not(sameInstance(new Object()))); 

 

 三、对异常的测试

 @Test注释有一个可选参数expected,这个参数的取值是Throwable的子类。如果我们想判断上面的代码是否抛出正确的异常。

代码:

 

@Test(expected= IndexOutOfBoundsException.class) 
public void empty() { 
    new ArrayList<Object>().get(0); 
}

 也可以利用Rule,代码:

@Rule
public ExpectedException thrown = ExpectedException.none();

@Test
public void shouldTestExceptionMessage() throws IndexOutOfBoundsException {
    List<Object> list = new ArrayList<Object>();

    thrown.expect(IndexOutOfBoundsException.class);
    thrown.expectMessage("Index: 0, Size: 0");
    list.get(0); // execution will never get past this line
}

 

说明:

  1. 利用@Rule,我们可以对异常的提示信息进行检查。
  2. expectMessage方法还支持使用CoreMatchers.containsString来进行提示信息的匹配判断,如下:

     thrown.expectMessage(CoreMatchers.containsString("Size: 0"));

四、测试超时

通过@Test注释的一个可选参数timeout的数值(单位毫秒),我们可以告诉框架,预设的超时时间是多少。当测试运行中,执行时间超出了这个预设值,框架就会抛出TimeoutException异常,标记这个测试失败了。

@Test(timeout=1000)
public void testWithTimeout() {
  ...
}

 我们也可以使用规则,来为整个测试类里面所有测试方法设置一个统一的超时时间

@Rule
    public Timeout globalTimeout = new Timeout(10000); // 10 seconds max per method tested

 

 

 

 

 

分享到:
评论

相关推荐

    eclipse 使用指南(一本中文使用说明,一本快捷键的汇总)

    本指南将基于提供的资源——一本中文使用说明和一本快捷键汇总——详细讲解Eclipse的基础操作和高效使用技巧。 ### 一、Eclipse 快捷键 1. **代码编辑**: - `Ctrl + Shift + O`:快速导入所需类。 - `Ctrl + ...

    Java基础知识点汇总

    ### Java基础知识点汇总 #### 一、JAVA反射机制的作用及应用 **作用:** 1. **动态获取类信息:** 反射可以让程序在运行时动态地获取类的信息,包括类名、方法名、字段等。 2. **动态创建实例:** 可以通过反射...

    java面试题总汇(计算机基础、网络、存储、缓存、分布式、安全)

    【Java面试题总汇】涵盖了计算机基础、网络、存储、缓存、分布式、安全等多个方面的知识点,这些都是在IT行业中特别是Java开发岗位面试时常见的问题。下面将分别详细讲解这些领域的重点内容。 **计算机基础** 在...

    JAVA基础面试题大全整理版本

    本文档旨在为求职者提供一份全面且实用的Java基础面试题汇总及解答指南,旨在帮助读者在面对技术面试时更加从容不迫。 #### 二、面试题解析方法论 1. **核心知识阐述**:首先明确回答基本概念和技术要点,确保基础...

    中北大学软件测试U+期末复习资料之大题/填空汇总

    #### 一、Java语法基础与编程规范 根据题目中的示例代码,我们可以总结出以下关键知识点: 1. **包(Package)声明**: - 包是用来组织类的一种机制,它使得不同类之间不容易产生命名冲突。 - 包声明总是位于...

    TOOLS技术文章 总汇

    "TOOLS技术文章总汇"很可能是一个集合了多种技术工具的介绍、使用教程和最佳实践的文章合集。接下来,我们将围绕这个主题,探讨一些可能包含在这些文章中的关键知识点。 1. **版本控制系统**:如Git,是开发者常用...

    程序面试试题汇总——C/C++/Java/软件测试

    一、C语言与C++面试题汇总 1. C语言基础:理解指针、内存管理(动态内存分配与释放)、结构体、共用体、位运算等概念。 2. 函数:函数参数传递(值传递、引用传递),递归,函数指针。 3. 链表、栈、队列、树等数据...

    android 比较全面的基础知识的汇总

    这篇综合性的知识汇总将涵盖多个关键概念,旨在为初学者提供全面的学习指南。以下是一些核心的Android知识点: 1. **环境搭建**:首先,你需要安装Java Development Kit (JDK) 和 Android Studio,这是Android开发...

    java 面试题总汇

    Java是一种广泛使用的面向对象的编程语言,以其平台独立性、高效性和丰富的类库而闻名。在Java面试中,面试官通常会考察候选人的基础知识、编程能力、设计模式、并发处理、集合框架、JVM原理等多个方面。以下是一些...

    java 电子书籍汇总 5

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能和丰富的类库而闻名。这份“java电子书籍汇总 5”包含的资源是为那些希望深入理解和提升Java技能的学习者准备的。以下是一些可能涵盖的重要知识点: 1....

    软件测试ppt学习课件,软件测试基础教程PPT

    《软件测试基础教程PPT》是一份全面介绍软件测试理论与实践的学习课件,适合对软件测试感兴趣的初学者以及希望深化测试技能的工程师们。这份资料涵盖了软件测试的基础概念、测试流程、方法论以及实际操作技巧,旨在...

    软件测试相关总汇

    4. 自动化测试:了解Selenium、JUnit、Appium等自动化测试工具的使用,以及如何编写测试脚本。 5. 质量保证与质量控制:理解两者的区别,以及它们在软件开发生命周期中的角色。 软件测试的最新趋势包括敏捷测试、...

    JAVA教程集合汇总-从入门到入土【汇总多年-史上最详细】呕心沥血整理

    Java教程集合汇总,这是一份全面且深入的学习资源,涵盖了从初学者到高级开发者所需的知识点,旨在帮助学习者从入门到精通Java编程语言。这份呕心沥血整理的资料库,不仅包含了基础理论,还涵盖了实践应用,是Java...

    史上最全的开发手册汇总

    《史上最全的开发手册汇总》是一份集合了众多开发资源的珍贵资料库,特别适合广大开发者,尤其是专注于Java开发的工程师。这份压缩包包含了20本详细的开发手册,旨在为编程人员提供全方位的指导和帮助,无论是初学者...

    软件测试资料汇总-共享资源

    这份"软件测试资料汇总-共享资源"提供了一系列宝贵的资料,旨在帮助软件测试人员提升技能,解决问题,以及更好地理解和执行测试任务。以下是对这些资料的详细解读: 1. **测试基础理论**:这部分可能涵盖测试的基本...

    Struts2 + hibernate + Spring 的 jar包汇总

    这些jar文件是构建SSH项目的基础,开发者需要将它们添加到项目的类路径中,以便正确引用和使用这些框架。 总之,Struts2、Hibernate和Spring的结合使用,为Java Web开发提供了一种强大、灵活且可扩展的解决方案。...

    java面试题汇总

    Java面试题汇总,是每一位Java开发者在求职过程中都需要面对的重要环节。这个压缩包文件名为“java面试题总汇《很经典的》”,暗示其中包含了大量Java面试的经典问题和解答,可以帮助求职者更好地准备面试,提高成功...

    java上机实验项目汇总

    在这个“java上机实验项目汇总”中,我们可以预期包含一系列针对不同Java编程概念和技巧的实践任务。以下是一些可能涵盖的知识点: 1. **基础语法与数据类型**:实验可能涉及编写简单的程序,包括变量声明、常量...

    CCRC设计文档资料汇总.zip

    《CCRC设计文档资料汇总》是一份集合了关于软件开发中的持续集成/持续交付(Continuous Integration/Continuous Deployment,简称CI/CD)领域的关键文档资源。CCRC是CI/CD流程的一种扩展,它强调了在软件开发生命...

    山东大学软工实验汇总.zip

    6. **软件测试**:学习单元测试、集成测试和系统测试的基本方法,如JUnit、Selenium等测试框架的使用,以及编写测试用例的技巧。 7. **项目管理**:可能有使用敏捷开发方法(如Scrum或Kanban)进行项目管理的实践,...

Global site tag (gtag.js) - Google Analytics