`
啸笑天
  • 浏览: 3461204 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

junit基础

阅读更多

 

JUnit 4 使用 Java 5 中的注解(annotation),以下是JUnit 4 常用的几个 annotation 介绍
@Before:初始化方法
@After:释放资源
@Test:测试方法,在这里可以测试期望异常和超时时间
@Ignore:忽略的测试方法
@BeforeClass:针对所有测试,只执行一次,且必须为static void
@AfterClass:针对所有测试,只执行一次,且必须为static void
一个JUnit 4 的单元测试用例执行顺序为:
@BeforeClass –> @Before –> @Test –> @After –> @AfterClass
每一个测试方法的调用顺序为:
@Before –> @Test –> @After

 

@BeforeClass and @AfterClass @Before and @After
在一个类中只可以出现一次

在一个类中可以出现多次,即可以在多个方法的声明前加上这两个Annotaion标签,执行顺序不确定

方法名不做限制 方法名不做限制
在类中只运行一次 在每个测试方法之前或者之后都会运行一次

@BeforeClass父类中标识了该Annotation的方法将会先于当前类中标识了该Annotation的方法执行。
@AfterClass 父类中标识了该Annotation的方法将会在当前类中标识了该Annotation的方法之后执行

@Before父类中标识了该Annotation的方法将会先于当前类中标识了该Annotation的方法执行。
 @After父类中标识了该Annotation的方法将会在当前类中标识了该Annotation的方法之后执行
必须声明为public static 必须声明为public 并且非static
所有标识为@AfterClass的方法都一定会被执行,即使在标识为@BeforeClass的方法抛出异常的的情况下也一样会。 所有标识为@After 的方法都一定会被执行,即使在标识为 @Before 或者 @Test 的方法抛出异常的的情况下也一样会。

@BeforeClass 和 @AfterClass 对于那些比较“昂贵”的资源的分配或者释放来说是很有效的,因为他们只会在类中被执行一次。相比之下对于那些需要在每次运行之前都要初始化或者在运行之后都需要被清理的资源来说使用@Before和@After同样是一个比较明智的选择。

 

Junit Assert超类所提供的8个核心方法

import static  org.junit.Assert.*;

  1.assertEquals ([String message],expected,actual):

           用来查看对象中存的值是否是期待的值,与字符串比较中使用的equals()方法类似;

    2.assertFalse ([String messag],boolean condition)

            assertTrue ([String messag],boolean condition):

           用来查看变量是是否为false或true,如果assertFalse()查看的变量的值是false则

           测试成功,如果是true则失败,assertTrue()与之相反;

      3.assertSame ([String message],expected,actual)

            assertNotSame ([Spring message],expected,actual):

           用来比较两个对象的引用是否相等和不相等,类似于通过“==”和“!=”比较两个对象;

          (与equal有区别)

  4.assertNull ([String message],java.lang.Object object)

            assertNotNull ([String message],java.lang.Object object):

           用来查看对象是否为空和不为空;

  5.fail ([String message]):

           意为失败,用来抛出错误。fail()一旦被执行,会立即中止测试,java虚拟机不再执行任

          何别的代码,并且会抛出  junit.framework.AssertionFailedError错误!我个人认为有

          两个用途:首先是在测试驱动开发中,由于测试用例都是在被测试的类之前编写的,而写成

          时又不清楚其正确与否,此时就可以使用fail方法抛出错误进行模拟;其次是抛出意外的错

         误,比如要测试的内容是从数据库中读取的数据是否正确,而导致错误的原因却是数据库连

         接失败,这样便可以直接找出错误的根源。

          在入参上标有"[ ]"的是可以选的,加上这些会让测试代码出错时报出你设置的错误信息。

 

 

7JUnit核心类之间的关系及生命周期




 

 

 

 

 

 

写个例子测试一下,测试一下

 

package junit.text;


import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
public class Testago {
	@Before
	public void before() {
	  System.out.println("@Before");
	}
	@Test
	public void test() {
	  System.out.println("@Test1");
Assert.assertEquals(5 + 5, 10);
	}

	@Ignore
	@Test
	public void testIgnore() {
	  System.out.println("@Ignore");
	}

	@Test(timeout = 50)
	public void testTimeout() {
	  System.out.println("@Test(timeout = 50)");//单位毫秒
      Assert.assertEquals(5 + 5, 10);
	}

	@Test(expected = ArithmeticException.class)
	public void testExpected() {
	  System.out.println("@Test(expected = Exception.class)");
	  throw new ArithmeticException();
	}

	@After
	public void after() {
	   System.out.println("@After");
	  }
	  
	  @BeforeClass
	  public static void beforeClass() {
	   System.out.println("@BeforeClass");
	  };
	  
	  @AfterClass
	  public static void afterClass() {
	   System.out.println("@AfterClass");
	  }
	}
 

 

 

输出结果

@BeforeClass

@Before

@Test(timeout = 50)

@After

@Before

@Test(expected = Exception.class)

@After

@Before

@Test1

@After

@AfterClass


 

 

 

 

  • 大小: 12.2 KB
  • 大小: 115.2 KB
分享到:
评论

相关推荐

    Junit基础培训

    ### Junit基础培训知识点 #### 一、Junit基本概念 - **定义**:Junit是一种专门用于Java语言的单元测试框架,由Erich Gamma和Kent Beck开发。 - **开源特性**:它是一款开放源代码的软件,用户可以从官方网站...

    Junit 单元测试完整案例

    一、Junit基础 1. Junit简介:Junit是一款开源的、基于Java的测试框架,由Ernst Leifer和Kent Beck创建。它支持注解驱动的测试,让编写和运行测试变得极其便捷。 2. 注解使用:`@Test`注解用于标记测试方法,`@...

    Junit学习.rar

    1. **JUnit基础知识**:了解JUnit的基本概念,如测试套件(Test Suite)、测试方法(Test Method)以及断言(Assertion)。这些都是编写测试用例的基础。 2. **JUnit注解(Annotations)**:从JUnit 3.8过渡到4.x,...

    Eclipse安装插件——junit

    Junit是Java编程语言的一个开源测试框架,由Ernst Kuipers和Kent Beck在早期版本的JUnit基础上发展起来的。它主要用于编写和运行可重复的、自动化控制的单元测试。在软件开发过程中,单元测试是确保代码质量的关键...

    JUnit_完整教程_基础_实例

    ### JUnit 完整教程:基础知识与实例详解 #### 一、JUnit 概述与重要性 JUnit 是一款广泛应用于 Java 开发环境下的单元测试框架。它的设计初衷是为了简化单元测试过程,帮助开发者更容易地编写出高质量的代码。在...

    JUnit Testing Utility Tutorial.pdf

    #### 三、JUnit 基础 本节将通过一个简单的示例来介绍单元测试的基本概念。 **示例 1**:假设我们需要测试一个名为 `Calculator` 的类,该类包含两个方法:`add` 和 `subtract`。我们希望验证这两个方法是否正确...

    Junit深入理解和学习的必备资料

    1. **JUnit基础知识**:JUnit是一个基于Java的开源测试框架,它提供了注解(Annotations)来定义测试方法和测试类,如@Test用于标记测试方法,@Before和@After用于设置测试前后的环境。JUnit的核心理念是使得编写和...

    Junit+Recipes中文版.rar

    1. **JUnit基础知识**:首先,书中会介绍JUnit的基本概念,包括如何创建和运行测试用例,理解断言(assertions)以及测试失败的处理。这包括设置测试环境,引入JUnit库,并创建首个简单的测试类。 2. **测试注解...

    JUnit_Test_Code.zip_JUnit_JUnit测试_junit测试脚本

    1. **JUnit基础**:JUnit的核心是测试用例,它由一系列公共方法组成,这些方法的名称通常以"test"开头。每个方法都代表一种可能的测试场景,当运行测试时,每个方法都会被单独执行。 2. **@Test注解**:在JUnit中,...

    JUnit_in_Action,_2nd_Edition.pdf

    - **第一部分:JUnit基础** - **第1章:JUnit入门**:介绍如何快速上手JUnit,包括环境搭建、第一个测试案例等。 - **第2章:探索JUnit**:深入探讨JUnit的核心功能和高级特性。 - **第3章:软件测试原则**:讲解...

    JUnit4基础文档

    JUnit4基础文档 单元测试是软件测试的一种,旨在检验软件的正确性和可靠性。JUnit是一个流行的单元测试框架,广泛应用于Java开发中。本文档介绍了JUnit4的基础知识,包括单元测试的概念、JUnit4的HelloWorld示例、...

    JUnit入门资料合集

    这些内容可以帮助你建立坚实的JUnit基础,让你能够编写出可靠的测试代码。 "Java软件构架设计模式-"文件可能是一份关于Java软件架构和设计模式的文档,虽然不是直接关于JUnit,但与之密切相关。设计模式在编写可...

    单元测试JUnit学习专题

    #### 三、JUnit基础使用 **JUnit基本结构**: - **测试类**:测试类通常使用`@RunWith(JUnit4.class)`注解标注,表明这是一个JUnit测试类。 - **测试方法**:每个具体的测试用例通过一个带有`@Test`注解的方法来...

Global site tag (gtag.js) - Google Analytics