package com.ssh.junitTest;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class WordDealUtil {
/***
* 将 Java 对象名称(每个单词的头字母大写)按照
* 数据库命名的习惯进行格式化
* 格式化后的数据为小写字母,并且使用下划线分割命名单词
* @param name
* @return
*/
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();
}
}
package com.ssh.junitTest;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import org.junit.Test;
public class TestWordDealUtil {
// 测试 wordFormat4DB 正常运行的情况
@Test public void wordFormat4DBNormal(){
String target = "employeeInfo";
String result = WordDealUtil.wordFormat4DB(target);
//静态断言方法 employee_info 为期望值 employeeInfo为所测试的值
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);
}
}
package com.ssh.junitTest;
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;
/***
* 参数化测试的编写单元测试
* 1. 为准备使用参数化测试的测试类指定特殊的运行器 org.junit.runners.Parameterized。
* 2. 为测试类声明几个变量,分别用于存放期望值和测试所用数据。
* 3. 为测试类声明一个使用注解 org.junit.runners.Parameterized.Parameters 修饰的,返回值为 java.util.Collection 的公共静态方法,并在此方法中初始化所有需要测试的参数对。
* 4. 为测试类声明一个带有参数的公共构造函数,并在其中为第二个环节中声明的几个变量赋值。
* 5. 编写测试方法,使用定义的变量作为参数进行测试。
*
* @author Administrator
* @version 1.0, Feb 22, 2011
* Copyright 2010 Evergreen International Corp.
*/
@RunWith(Parameterized.class)
public class TestWordDealUtil2 {
private String expected;
private String target;
@SuppressWarnings("unchecked")
@Parameters
public static Collection words(){
return Arrays.asList(new Object[][]{
{"employee_info", "employeeInfo"}, // 测试一般的处理情况
{null, null}, // 测试 null 时的处理情况
{"", ""}, // 测试空字符串时的处理情况
{"employee_info", "EmployeeInfo"}, // 测试当首字母大写时的情况
{"employee_info_a", "employeeInfoA"}, // 测试当尾字母为大写时的情况
{"employee_a_info", "employeeAInfo"} // 测试多个相连字母大写时的情况
});
}
/***
* 参数化测试必须的构造函数
* @param expected 期望的测试结果,对应参数集中的第一个参数
* @param target 测试数据,对应参数集中的第二个参数
*/
public TestWordDealUtil2(String expected , String target){
this.expected = expected;
this.target = target;
}
/***
* 测试将 Java 对象名称到数据库名称的转换
*/
@Test public void wordFormat4DB(){
assertEquals(expected, WordDealUtil.wordFormat4DB(target));
}
}
分享到:
相关推荐
北师大版一年级上册数学第七单元测试一.pdf
大学英语综合教程第一册第一单元测试 大学英语综合教程第一册第一单元测试
单元测试文档,经互联网下载整理所得。单元测试是软件测试很重要的一部分。
电子商务与现代物流单元测试一(答案).doc
C++单元测试三大框架的比较软件测试1、TUT结构框架简单。添加新的测试工作量小;无须注册测试;可移植性好(因其只需两个头文件,就可以完成测试工作);便于装卸;提供接口可以扩展其输出方式等。最大的优点:轻量级,...
一年级数学上册 单元测试一 人教版 试题.doc
神经病学单元测试一借鉴.pdf
上下文时间软件测试中Junit单元测试实例在一种传统的结构化编程语言中,比如C,要进行测试的单元一般是函数或子过程。在象C++这样的面向对象的语言中,要进行测试的基本单元是类。对Ada语言来说,开发人员可以选择是...
第2章 第一个单元测试 21 第ii部分 核 心 技 术 第3章 使用桩对象解除依赖 49 第4章 用模拟对象做交互测试 83 第5章 隔离(模拟对象)框架 101 第iii部分 测试的代码 第6章 测试层次及组织 147 第7章 优秀单元...
【单元测试一】Unit6Doyoulikebananas.doc
单元测试就是模块测试,我的理解一个模块就是一个类,主要是指我们的 Service 模块,因为一个项目中大部分的业务逻辑都在 Service 层。我们专注测试 Service 中的方法即可。集成测试也就是多个模块的联合测试,...
上一篇文章已经介绍了单元测试的作用和简单示例,如果不了解的读者可以先阅读上一篇[ Android单元测试-作用以及简单示例](http://blog.csdn.net/double2hao/article/details/77159380)。 这篇文章主要介绍常见的...
微软的VS开发工具为我们提供了强大的单元测试环境,在VS当中可以直接对类库项目进行测试,极大的方便了程序员的自我纠错能力。除了官方的解决方案之外,还有一种非常好的免费开源的第三方测试工具,那就是NUnit。它...
单元测试( Unit Test ,模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确,通过编写单元测试可以在编码 阶段发现程序编码错误,甚至是程序设计错误。 单元测试不但可以...
青岛版一年级数学下册第一二单元测试题精选.doc
Java语言是一个支持面向对象的语言,通常情况下我们可以将程序的一个单元看成是一个独立的类,因此进行单元测试的重点就是对这些类进行测试。 1、不需要测试get和set这样的行为 2、一个方法至少需要测试一次
一年级下数学第一二三单元测试卷精选.doc
一大早,一个年轻的程序员问大师:“我准备写一些单元测试用例。代码覆盖率应该达到多少为好?”大师回答道:“不要考虑代码覆盖率,只要写出一些好的测试用例即可。” 一大早,一个年轻的程序员问大师: “我准备...
单元测试是每一个开发人员都必须去做的事,它将采用白盒方法来进行,为了跟踪单元测试的效果,对开发人员进行督促,对于一些重要的模块进行测试是很必要的。该表格就是用来让开发人员填写单元测试的结果的文档。
福建省福鼎初三政治单元测试一 人教版 试题.doc