单元测试JUnit 4(二)——keeps the bar green to keeps the code clean

1.Failure和Error

Failure是指测试失败  Error是指测试程序本身出错  (int a=10/0)

2.JUnit常用注解

2.1 @RunWith: 可以更改测试运行器(继承org.junit.runner.Runner)
2.2 @Test: 将一个普通的方法修饰成为一个测试方法
  Test有两个参数:
     expected 表示预期可能产生的异常,如果匹配则不报错
     timeout  表示超时时间,如果超过这个时间没有完成,则抛出TestTimedOutException
 @Test(expected=ArithmeticException.class,timeout=2000)//第一个参数是异常类的类类型,第二个参数是毫秒数

  2.3 全局的初始化和销毁:@BeforeClass和@AfterClass

@BeforClass: 他会在所有的方法运行前被执行,static修饰,用来进行一些开销昂贵的初始化操作,比如连接数据库。@AfterClass: 他会在所有的方法运行结束后被执行,static修饰   注意这两个修饰符修饰的方法必须是public static void的,并且没有参数(no-arg)。 Note:     即便@BeforeClass修饰的方法抛出异常了,@AfterClass修饰的方法也会照常执行。    基类的@BeforeClass方法会在子类的@BeforeClass方法之前进行;而基类的@AfterClass方法会在子类的@AfterClass方法之后进行。

2.4 这两个方法会在每一个测试用例的前后被调用,所以可以用来创建对象,对于每个测试用例来说都是一个新的对象。
@Befor: 会在每一个测试方法被运行前执行一次
@After: 会在每一个测试方法运行后被执行一次

2.5 @Ignore注解可用于修饰测试类与测试方法,被@Ignore所修饰的方法或类中的测试(@Test修饰的测试)将不会被执行。

  @Ignore中可以加上参数值,说明忽略测试的原因。

2.6 示例(以数值计算测试为例)

2.6.1 Calculator.java

package com.zang.junit4.test;

public class Calculator
{
    public int add(int a, int b)
    {
        return a + b;
    }

    public int subtract(int a, int b)
    {
        return a - b;
    }

    public int multiply(int a, int b)
    {
        return a * b;
    }

    public int divide(int a, int b) throws Exception
    {
        if (0 == b)
        {
            throw new Exception("除数不能为0");
        }
        return a / b;
    }
}

2.6.2 CalculatorTest.java

package com.zang.junit4.test;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

import static org.junit.Assert.assertEquals;//静态导入

public class CalculatorTest
{
    private Calculator cal = null;

    @BeforeClass
    public static void globalInit()
    {
        System.out.println("global Init invoked!");
    }

    @AfterClass
    public static void globalDestroy()
    {
        System.out.println("global Destroy invoked!");
    }

    @Before
    public void init()//setUp()
    {

        cal = new Calculator();
        System.out.println("init --> cal: " + cal);

    }

    @After
    public void destroy()//tearDown()
    {
        System.out.println("destroy");
    }

    @Test
    public void testAdd()
    {
        System.out.println("testAdd");
        int result = cal.add(3, 5);
        assertEquals(8, result);
    }

    @Test
    public void testSubtract()
    {
        System.out.println("testSubtract");
        int result = cal.subtract(1, 6);
        assertEquals(-5, result);

    }

    @Test
    public void testMultiply()
    {
        System.out.println("testMultiply");
        int result = cal.multiply(5, 9);
        assertEquals(45, result);
    }

}

2.6.3 Run As JUnit Test ——>控制台输出

 3.运行多个测试

注意:  遵守约定,比如:

a) 类放在test包中 b) 类名用XXXTest结尾  c) 方法用testMethod命名

时间: 2024-10-13 08:24:48

单元测试JUnit 4(二)——keeps the bar green to keeps the code clean的相关文章

keep the bar green to keep the code clean——Junit详解(二)

测试用例&测试套件 举个栗子: 编写MyStack类模拟栈,并对其进行测试用例编写测试: 编写文件删除方法,并对其删除测试. 不再做演示,戳此获取代码 MyStack类: public class MyStatck {      private String[] elements;    private int nextIndex;      public MyStatck() {       elements = new String[100];       nextIndex = 0;   

keep the bar green to keep the code clean——Junit详解(一)

测试用例 单元测试时每个开发人员必需掌握的,是保证开发过程中代码的准确性,无误性,保证代码质量.敏捷开发模式是先根据用户需求写测试用例,考虑基本所有用户所需要的情况,再写实现方法.单元测试有很多种,当前主流的是Junit,它是java领域测试中应用最多的开源框架 Junit版本 Junit3.8    基于反射的 Junit4    基于注解的 规范:junit测试代码与待测试源代码(src)分开,方便剔除测试代码. 在项目工程中new->Source Folder新建一个源代码目录"te

菜鸟学Java(二十一)——如何更好的进行单元测试——JUnit

测试在软件声明周期中的重要性,不用我多说想必大家也都非常清楚.软件测试有很多分类,从测试的方法上可分为:黑盒测试.白盒测试.静态测试.动态测试等:从软件开发的过程分为:单元测试.集成测试.确认测试.验收.回归等. 在众多的分类中,与开发人员关系最紧密的莫过于单元测试了.像其他种类的测试基本上都是由专门的测试人员来完成,只有单元测试是完全由开发人员来完成的.那么今天我们就来说说什么是单元测试,为什么要进行单元测试,以及如更好的何进行单元测试. 什么是单元测试? 单元测试(unit testing)

单元测试Junit

###<center> 单元测试Junit </center>###- - -1.**单元测试**:> ==单元测试==是软件之中对于最小的功能模块的的测试,其可以对最基本的软件构成单元来测试.> 需要注意的是:> >**测试用例是用来达到测试想要的预期结果,而不能测试出程序的逻辑错误**. 2.**JUnit**:>1.**Junit是基于断言机制的**.是用于编写可复用测试集的简单框架,是xUnit的一个子集.xUnit是一套基于测试驱动开发的测试

Android Day02-Android中单元测试(junit测试)&monkey测试

Android中junit测试有2种实现方式 第1种:一般Android工程的实现方式 1.在清单文件中添加2项内容 首先在AndroidManifest.xml中加入下面红色代码: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.itcast.action" android:versionCode="1"  android:v

Java 单元测试Junit

@Test @Before @After 测试方法运行前执行Before动作(比如创建资源),运行后执行After动作(比如销毁资源) @BeforeClass @AfterClass 测试类运行前执行Before动作(比如创建资源),运行后执行After动作(比如销毁资源) Assert 对方法结果进行判断,是否等于希望值,是否为空等 表示测试通过不通过 Java 单元测试Junit,布布扣,bubuko.com

上课笔记_单元测试JUnit

单元测试  单元测试就是整合程序代码到系统的其余部分之前先测试以便找出程序代码中的bugs,单元测试是白盒测试: 有很多测试工具我们为什么要选择JUnit测试工具? 1. 开源 2. 使用简单 3. 可以扩展功能 MyEclipse集合了JUnit:这里通过导入jar包来实现. Junit4下载地址:http://pan.baidu.com/s/1kTLZa3X 我们一般在项目右击新建一个source foler :test  :(发布的时候test不会被发布) 新建包名和要测试的类的包名一样:

Java单元测试Junit的Annotation介绍

单元测试是开发者的业界良心 Java开发中常以Junit作为测试框架,而且Junit也成为Java社区测试方面的事实标准,可以百度一些看看Junit的相关介绍.目前Junit发展到了Junit4.x版本,相对之前的Junit3.x版本有着明显的变化就是使用了Annotation的方式来注解测试用例. 下面是关于Junit4.x的常用注解说明图: Java单元测试Junit的Annotation介绍

Java单元测试(Junit+Mock+代码覆盖率)---------转

Java单元测试(Junit+Mock+代码覆盖率) 原文见此处 单元测试是编写测试代码,用来检测特定的.明确的.细颗粒的功能.单元测试并不一定保证程序功能是正确的,更不保证整体业务是准备的. 单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代码修复.改进或重构之后的正确性. 一般来说,单元测试任务包括 接口功能测试:用来保证接口功能的正确性. 局部数据结构测试(不常用):用来保证接口中的数据结构是正确的 比如变量有无初始值 变量是否溢出 边界条件测试 变量没有赋值(即为NULL) 变