JUnit4使用

1、导入Junit4jar包:

  Eclipse中在项目上右键点击Bulid Path,然后再点击Add libraries,选择JUnit

2、初次使用

首先先创建一个java项目如下:

Demo.java内容:

package cn.orlion.demo;

public class Demo {

    public int method1(int p1 , int p2){

        return p1 + p2;
    }

    public int method2(int p1 , int p2){

        return p1 - p2;
    }

    public int method3(int p1 , int p2){

        return p1 * p2;
    }
}

然后在src上点击右键添加一个source folder命名为test,在test下创建包cn.orlion.demo(包名要与要测试的包名一致),然在在此包右键new一个JUnit Test Case,命名为DemoTest。

写测试类时有一些规范需要遵守:

  (1)测试方法上必须使用@Test进行修饰(2)测试方法必须用public void修饰不能带参数(3)需要新建一个源代码目录来存放测试代码(4)测试类的包必须要与被测试类包名一致(5)测试单元中的每个方法必须可以独立测试,方法间不能存在依赖(6)测试类使用Test作为后缀(7)测试方法使用test作为前缀

代码如下所示:

package cn.orlion.demo;

import static org.junit.Assert.*;

import org.junit.Test;

public class DemoTest {

    @Test
    public void testMethod1(){

        assertEquals(3 , new Demo().method1(2 , 1));
    }

    @Test
    public void testMethod2(){

        assertEquals(1 , new Demo().method2(2 , 1));
    }

    @Test
    public void testMethod3(){

        assertEquals(2 , new Demo().method3(2 , 1));
    }

}

现在的项目结构如图所示

在DemoTest.java类右键点击Run As -> JUnit Test结果如下所示:

(Failures一般是由测试方法中断言引起,这表示测试点出现了问题,证明被测试的方法返回的结果与我们预期的不一样

Errors一般是由被测试方法或者是测试方法中存在异常导致。)

状态条为绿色三个方法全部测试成功

3、JUnit运行流程

(1)@BeforeClass修饰的方法会在所有方法执行前执行,该方法是静态的,所以当测试类被加载后就会运行它,在内存中只会存在一份,适合加载配置文件

(2)@AfterClass修饰符修饰的方法会在所有方法执行后执行,通常用来清理资源,比如关闭流

(3)@Before和@After会在每个测试方法执行前后执行一次。

4、JUnit常用注解

(1)@Test

  @Test有个expected属性和timeout属性(@Test(expected=NullPointerException.class),@Test(timeout=1000))

  expected属性可以捕获测试方法和被测试方法中预期抛出的异常,timeout限定方法执行的时间

(2)@Ignore

  @Ignore修饰的方法不会被执行,可以@Ignore("此方法被忽略")做一个注释:此方法被忽略

(3)@RunWith可以更改测试运行器org.junit.runner.Runner

5、测试套件

  随着项目功能的逐渐完善我们的测试类也会越来越多,测试的时候不能一个一个的去执行,于是有了测试套件,也就是在一个入口类中包含若干个测试类,然后只要执行该入口类就可以执行其包含的若干个测试类

入口类必须是个空类,如下:

import org.junit.runner.RunWith;

import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({DemoTest.class,DemoTest1.class})
public class SuiteTest {

}

6、JUnit参数化设置

  在测试中很多测试代码基本上差不多,所以可以采用参数化设置

import static org.junit.Assert.assertEquals;

import java.util.Arrays;
import java.util.Collection;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

// 第一步:更改测试运行器
@RunWith(Parameterized.class)
public class ParameterTest {
    // 第二步:声明变量来存放预期值与输入值
    int expected = 0;
    int input1 = 0;
    int input2 = 0;

    // 第三步:声明一个返回值为Collection的公共静态方法,使用@Parameters修饰
    @Parameters
    public static Collection<Object[]>t(){

        return Arrays.asList(new Object[][]{
            {3,1,2},
            {1,2,1},
            {2,2,1}
        });
    }

    // 第四步:为测试类声明一个带参数的公共构造函数,并在其中为声明变量赋值
    public ParameterTest(int expected , int input1 , int input2){

        this.expected = expected;
        this.input1 = input1;
        this.input2 = input2;
    }

    // 第五步:进行测试
    @Test
    public void testMethod1(){

        assertEquals(expected , new Demo().method1(input1 , input2));
    }
}
时间: 2024-10-29 03:46:56

JUnit4使用的相关文章

junit4 assert类中的assert方法总结

junit中的assert方法全部放在Assert类中,总结一下junit类中assert方法的分类. 1.assertTrue/False([String message,]boolean condition);判断一个条件是true还是false.感觉这个最好用了,不用记下来那么多的方法名.2.fail([String message,]);失败,可以有消息,也可以没有消息.3.assertEquals([String message,]Object expected,Object actu

junit4使用心得

没使用junit4之前,测试代码都是通过写一个main方法,在不断的new对象,调用方法来发现错误,使用junit4之后,我发现测试变得简单了,每写一个功能块就可以通过junit4来实现该功能. 那么接下来看如何使用junit4来测试方法中的代码,从而不需要写main方法,是不是非常方便. 在 JUnit4 中,测试是由 @Test 注释来识别的,以前所有版本的 JUnit 都使用命名约定和反射来定位测试,并且要继承TestCase类,使用JUnit4后,测试用例类可以不继承TestCase类,

JUnit4 学习感悟

2016-09-07 22:31:14 1.测试方法必须使用@Test进行修饰 2.测试方法必须使用public void 进行修饰,不能带任何参数 3.新建一个源代码目录来存放我们的测试代码4.测试类的包应该和被测试类保持一致5.测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖6.测试类使用Test作为类名的后缀(非必须)7.测试方法必须使用test作为方法名的前缀(非必须)---进行了6,7 后,可以显得很规范 测试用例用来达到想要的预期结果,但对于逻辑错误无能为力. JUn

junit4进行单元测试

一.前言 提供服务的时候,为了保证服务的正确性,有时候需要编写测试类验证其正确性和可用性.以前的做法都是自己简单写一个控制层,然后在控制层里调用服务并测试,这样做虽然能够达到测试的目的,但是太不专业了.还是老老实实的编写测试类进行测试吧. 二.Junit4依赖 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</v

解决String TestContext下使用junit4抛出异常(java.lang.NoClassDefFoundError)的问题

Spring版本2.5.5,JUnit 版本 4.8.1,使用了 Spring TestContext 的 SpringJUnit4ClassRunner.一直使用这个版本的JUnit,在写简单的测试时不会抛错,直到今天开始尝试写规范的JUnit测试代码,抛出了如下的错误: 解决方法: 使用JUnit4.4版本.

Junit(1)在Eclipse中使用JUnit4进行单元测试

我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能很强大,但我们在程序中只用到该函数的一小部分功能,并且经过调试可以确定,这 一小部分功能是正确的.但是,我们同时应该确保每一个函数都完全正确,因为如果我们今后如果对程序进行扩展,用到了某个函数的其他功能,而这个功能有bug的话,那绝对是一件非常郁闷的事情.所以说,每编写完一个函数之后,都应该对这个函数的方方面面进行测试,这样的测试我们称之为单元测试. 传统的编程方式,进行单元测试是一件很麻烦的事情,你要重新写另外一个程序,在

用JUnit4进行单元测试代码编写

JUnit4简介 Junit是一个可编写重复测试的简单框架,是基于Xunit架构的单元测试框架的实例.JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用JDK 5的Annotation特性简化测试用例的编写.JDK 5里可以静态导入,例如import static org.junit.Assert.*;.Annotation又称注解(或元数据),其实就是@Before.@After.@BeforeClass.@AfterClass.@Test等等. @Before @Before

使用JUnit-4.11报java.lang.NoClassDefFoundError:

最好的解决方法是: (1)换成junit-4.8.jar或是junit-4.11.jar (2)junit-4.11.jar + hamcrest-core-1.3.jar

使用eclipse利用Junit4进行程序模块的测试

一.题目简介 通过用户输入年份和月份,然后在控制台显示该年该月的日历. 二.源码的github链接. https://github.com/zhangxinn/test/blob/master/PrintCalendar 三.所设计的模块测试用例.测试结果截图 首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,然后对这些功能进行单元测试. //代码 第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,如图: 在弹出的属性窗口中,首先在左边选择“J

Junit4.x扩展:运行指定方法

相信很多道友搞开发的一般都会用到Junit单元测试工具,不知道大家有没有遇到一个这样的问题: 有的单元测试用例有很多@Test方法,甚至有的方法会执行很长时间,只能空等执行.而实际上我们只需要运行其中的某一些方法就可以了.然后有人会说不是有ingore注解么,可ingore需要为许多的方法添加,当测试方法达到一定数量级的时候,改起来会很烦躁,如果commit到代码服务器上甚至可能会影响别人工作.己所不欲... 之前有朋友跟我说过TestNG是支持指定执行哪些方法,本人没有亲自去实验,因为公司统一