Junit简单实现

  Junit是一个测试框架,分分钟入门,但它带来的便捷高效是不言而喻的,如果以投入时间和回报的节省时间来算,它的性价比很高。本篇就以一个简单的实例,结合注释,将该框架的基本功能介绍一下。

  引入依赖:

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

  对于一个简单的功能模块,我们可以这样测试:

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

  在eclipse中,我们可以选中方法名,而后右键Run as Junit Test,这个方法就会运行,执行成功即绿色通过,否则显示红色失败。当出现多个功能模块需要进行测试,比如:

    @Test    public void testDemo0() {        int a = 1;        int b = 2;        My my = new My();        int result = my.plus(a, b);        System.out.println("plus测试结果" + result);    }

    @Test    public void testDemo1() {        int a = 1;        int b = 2;        My my = new My();        int result = my.minus(a, b);        System.out.println("minus测试结果" + result);    }

  如果每个测试方法中,都要进行一些相同的处理,那么我们可以考虑用@Before和@After来进行简化:

    private int a;
    private int b;
    private int result;
    private My my;
    private String func;

    @Test
    public void testDemo0() {
        func = "plus";
        result = my.plus(a, b);
    }

    @Test
    public void testDemo1() {
        func = "minus";
        result = my.minus(a, b);
    }

    @Before
    public void myBefore() {
        a = 1;
        b = 2;
        my = new My();
    }

    @After
    public void myAfter() {
        System.out.println(func + "测试结果:" + result);
    }

  结果打印:

plus测试结果:3
minus测试结果:-1

  这样写是不是清爽很多?当需要预处理和执行完之后处理的内容增多时,这种测试简洁性就会更加明显!这两个注解就是用来对每个方法进行预处理和执行之后处理的,但是当整个测试类一开始只运行一次和结束测试时运行一次又该如何处理呢?答案是@BeforeClass,@AfterClass:

    private int a;
    private int b;
    private int result;
    private My my;
    private String func;

    @Test
    public void testDemo0() {
        func = "plus";
        result = my.plus(a, b);
    }

    @Test
    public void testDemo1() {
        func = "minus";
        result = my.minus(a, b);
    }

    @Before
    public void myBefore() {
        a = 1;
        b = 2;
        my = new My();
    }

    @After
    public void myAfter() {
        System.out.println(func + "测试结果:" + result);
    }

    @BeforeClass
    public static void myBeforeClass() {
        System.out.println("准备开始测试了哦:");
    }

    @AfterClass
    public static void myAfterClass() {
        System.out.println("所有测试全部结束!");
    }

  效果:

准备开始测试了哦:
plus测试结果:3
minus测试结果:-1
所有测试全部结束!

  实际开发中的单元测试里,我们不会用这样的输出来观察它的测试结果,而是用断言,Assert有很多种方法,这里不一一介绍,简单举例:

    private int a;
    private int b;
    private int result;
    private My my;
    private String func;

    @Test
    public void testDemo0() {
        func = "plus";
        result = my.plus(a, b);
        Assert.assertEquals(3, result);
    }

    @Before
    public void myBefore() {
        a = 1;
        b = 2;
        my = new My();
    }

    @After
    public void myAfter() {
        System.out.println(func + "测试结果:" + result);
    }

  在断言的assertEquals(expected, actual)中,第一个参数是期望方法结束后设置参数的值,第二个是执行完方法后这个真实的参数,如果二者相等,那么这个测试就算通过,如果不想等,就算失败。另外,@Test还可以使用超时参数timeout,当整个方法体执行完的时间小于这个设置的参数并且断言结果正确时,整个测试方法才算成功,否则就算断言正确,整个方法依然是失败的:

时间: 2025-01-11 02:41:06

Junit简单实现的相关文章

“Junit” 简单测试

junit 测试是一种简单的小测试,以下向大家展示一下如何利用eclipse自带的junit做一个简单的小测试. 新建一个Java project “helloHcs”,简单的输出“Hello HCS” 如图 之后新建一个junit project“junit”,简单的测试一下“helloHcs”Java project 如图: 运行两个project:结果如下: 这是一个非常简单的junit测试.

Junit 简单使用

package com.ejokovic.test; import org.apache.ibatis.session.SqlSession; import org.apache.log4j.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.ejokovic.Util.SqlSessionFactoryUtil; import com.ejokovic.dao.St

spring 4.0 JUnit简单的Dao,Service测试

1.AbstractTransactionalJUnit4SpringContextTests 和AbstractJUnit4SpringContextTests.我们在测试用例类要继承两种中的一个. AbstractTransactionalJUnit4SpringContextTests提供了数据库自动回滚,也就是说测试前和测试后数据库是一样的 AbstractJUnit4SpringContextTests不提供数据库自动回滚,测试会破坏数据库. 查看源码发现,AbstractTransa

spring 4.0 JUnit简单的Controller测试

比Dao和Service的测试稍微复杂一点.还是先写一个BasicWebTest用来总体配置: @WebAppConfiguration @ContextConfiguration(locations= {"classpath:spring/applicationContext.xml","classpath:spring/spring-servlet.xml"}) public class BasicWebTest extends AbstractTransact

eclipse中junit简单使用

1.在工程中右击 Build Path,Add libraries 然后就可以运行对应的方法了,不需要main方法调用了

软件测试之实验一——如何使用JUnit,Hamcrest和Eclemma进行简单的软件测试

一.安装JUnit,Hamcrest和Eclemma JUnit以及Harmcrest都以JAR包作为基础导入工程.安装jar包的过程很简单,只要在新建工程的时候导入或者直接在工程里导入即可.如下图所示: 可以直接在项目中添加额外的jar包,也可以将jar包路径添加到classpath中. Eclemma可以通过eclipse的market安装,搜索Eclemma,同意安装后重启即可. 二.实验内容 实验完整代码已上传至github:软件测试实验一@杨牧童 实验程序为一简单的判断三角形类型的函数

【Android进阶】Junit单元测试环境搭建以及简单实用

单元测试的目的 首先,Junit单元测试要实现的功能,就是用来测试写好的方法是否能够正确的执行,一般多用于对业务方法的测试. 单元测试的环境配置 1.在AndroidManifest清单文件的Application节点下,引入单元测试使用的库 2.在AndroidManifest清单文件与Application节点平行的节点中,添加instrumentation节点 下面是一个完整的配置的代码 <manifest xmlns:android="http://schemas.android.

Junit的最简单样例:Hello world!

我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3824934.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验. 不多说了,贴两段代码. HelloWorld类: public class HelloWorld { public void main() { System.out.println(helloWorld()); } public static String helloWorld() { retu

【Android进阶】Junit单元測试环境搭建以及简单有用

单元測试的目的 首先.Junit单元測试要实现的功能,就是用来測试写好的方法是否可以正确的运行,一般多用于对业务方法的測试. 单元測试的环境配置 1.在AndroidManifest清单文件的Application节点下.引入单元測试使用的库 2.在AndroidManifest清单文件与Application节点平行的节点中.加入instrumentation节点 以下是一个完整的配置的代码 <manifest xmlns:android="http://schemas.android.