Junit4的基本使用

如果是基于Eclipse使用Junit,在现在的Eclipse版本中都已经集成了Junit,可以根据自身的需求自由使用Junit3或者Junit4。在本文中主要通过测试简单算术程序(加,减,乘,除)来介绍Junit4的使用,并引入一个简单的案例进行讲解。

Step 1: 写出基本的算术代码Calculate.java

package com.fjnu.util;

public class Calculate {
    public int add(int a, int b){
        return a+b;
    }
    public int minus(int a, int b){
        return a-b;
    }
    public int divide(int a,int b){
        return a/b;
    }
    public int multi(int a, int b){
        return a*b;
    }
}

Step 2: 对Calculate类添加Junit4的测试单元,右键->new->JUnit Test Case,如下图

Step 3: 对添加的测试用例进行配置,命名为TestCalculate,点击Next

Step 4: 选择需要测试的函数,点击Finish,完成JUnit的基本配置

Step 5: 在经过上面的步骤之后,就可以得到配置好的测试用例

package com.fjnu.util;

import org.junit.Before;
import org.junit.Test;
// 静态导入
import static org.junit.Assert.*;

public class TestCalculate {
    private Calculate cal;
   
    // 执行任意一个方法之前都会执行setUp方法
    @Before
    public void setUp(){
        cal = new Calculate();
    }
   
    // 加了@Test表示该方法是一个单元测试
     @Test
    public void testAdd(){
        /*
         * 以下是一个简单的断言的编写
         * 第一个参数是如果出错给出的提示信息
         * 第二个表示期望值,通常是用户指定的内容
         * 第三个表示代码返回的实际值
         */
    //    Assert.assertEquals("加法有问题", 34, cal.add(12,22));
         /*
          * 由于包进行了静态导入之后
          * Assert中的所有静态方法就不用再添加类名了
          * 这样可以有效地兼容junit3
          */
         assertEquals("加法有问题", 34, cal.add(12,22));
    }
     @Test
     public void testMinus(){
         int res = cal.minus(12, 2);
//        Assert.assertEquals("减法有问题", 10, res);
         assertEquals("减法有问题", 10, res);
     }
     // 表示这个测试类应该抛出ArithmeticException,如果不抛出就报错
     @Test(expected=ArithmeticException.class)
     public void testDivide(){
         int res = cal.divide(12, 0);
         assertEquals("除法有问题", 6, res);
     }
    
     // 时间单位为ms
     @Test(timeout=190)
     public void testTime() throws InterruptedException{
          Thread.sleep(209);
         int rel = cal.divide(12, 2);
     }
    
     @Test
     public void testMulti(){
         int res = cal.multi(12, 2);
         assertEquals("乘法有问题",24,res);
     }
     //hamcrest 1.3
}

Step 6: 现在需要做的就是添加上需要测试的数据

package com.ysc.main;

import static org.junit.Assert.*;

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

public class CalculateTest {

    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
    }

    @Before
    public void setUp() throws Exception {
    }

    @Test
    public void testAdd() {
        assertEquals(5, Calculate.add(1, 4));
    }

    @Test
    public void testMinus() {
        assertEquals(-1, Calculate.minus(2, 3));
    }

    @Test
    public void testDivide() throws Exception {
        assertEquals(0, Calculate.divide(1, 4));
    }

    @Test
    public void testMultiply() {
        assertEquals(4, Calculate.multiply(1, 4));
    }

}

Step 7: 开始进行测试,右键->Run as->JUnit Test

由于添加的数据都是正常运行的数据,所有用例都测试正常

时间: 2024-10-16 21:00:32

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是支持指定执行哪些方法,本人没有亲自去实验,因为公司统一