java单元测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java单元测试相关的知识,希望对你有一定的参考价值。

1、首先新建一个 Java 工程 —— TestJUnit。打开项目 TestJUnit的属性页 -> 选择“Java Build Path”子选项 -> 点选“Add Library…”按钮 -> 在弹出的“Add Library”对话框中选择 JUnit,并在下一页中选择版本 4.1 后点击“Finish”按钮。

技术分享

2、在项目 TestJUnit 根目录下添加一个新目录 testsrc,并把它加入到项目源代码目录中,以存放测试代码,使之与源代码分离。

技术分享

3、编写单元测试用例:

package com.meritit;

 

import static org.junit.Assert.AssertNull;

import static org.junit.Assert.AssertEquals;

import org.junit.Test;

 

public class TestWordDealUtil {

 

    //测试wordFormat4DB 一般的处理情况

    @Test public void wordFormat4DBNormal(){

        String target = "employeeInfo";

        String result = WordDealUtil.wordFormat4DB(target);

        assertEquals("employee_info", result);

    }

   

    //测试null时的处理情况

    @Test public void wordFormat4DBNull(){

        String target = null;

        String result = WordDealUtil.wordFormat4DB(target);

        assertNull(result);

    }

   

    //测试空字符串时的处理情况

    @Test public void wordFormat4DBEmpty(){

        String target = "";

        String result = WordDealUtil.wordFormat4DB(target);

        assertEquals("", result);

    }

   

    //测试当首字母大写时的情况

    @Test public void wordFormat4DBegin(){

        String target = "EmployeeInfo";

        String result = WordDealUtil.wordFormat4DB(target);

        assertEquals("employee_info", result);

    }

   

    //测试当尾字母为大写时的情况

    @Test public void wordFormat4DBEnd(){

        String target = "employeeInfoA";

        String result = WordDealUtil.wordFormat4DB(target);

        assertEquals("employee_info_a", result);

    }

   

    //测试多个相连字母大写时的情况

    @Test public void wordFormat4DBTogether(){

        String target = "employeeAInfo";

        String result = WordDealUtil.wordFormat4DB(target);

        assertEquals("employee_a_info", result);

    }

}

4、按照需求所写的代码如下:

package com.meritit;

 

import java.util.regex.Matcher;

import java.util.regex.Pattern;

 

/**

 * 对名称、地址等字符串格式的内容进行格式检查

 * @author lvxg

 */

public class WordDealUtil {

 

    /**

     * 将Java对象名称(每个单词的头字母大写)按照

     * 数据库命名的习惯进行格式化

     * 格式化后的数据为小写字母,并且使用下划线分割命名单词

     *

     * 例如:employeeInfo 经过格式化之后变为 employee_info

     *

     * @param name Java对象名称

     */

    public static String wordFormat4DB(String name){

        Pattern p = Pattern.compile("[A-Z]");

        Matcher m = p.matcher(name);

        StringBuffer sb = new StringBuffer();

       

        while(m.find()){

            m.appendReplacement(sb, "_"+m.group());

        }

        return m.appendTail(sb).toString().toLowerCase();

    }

}

5、运行测试,结果如图所示:

技术分享

 JUnit 运行界面有两个测试情况未通过。

 

 

 

 

 

 
 
 

以上是关于java单元测试的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Spring + EasyMock做Java单元测试

Java应用XVIII在 Java 中使用JUnit5进行单元测试和自动化测试

[单元测试]Java单元测试,基于Mockito的第一次尝试

Java单元测试

java 面向对象(十七):单元测试方法

JUnit单元测试