`

单元测试 JUnit3 JUnit4

阅读更多

JUnit4和JUnit3的区别:

 

JUnit3的特点:

1.必须继承TestCase

2.测试方法必须以test开头

3.通过assert*判断测试结果

4.采用setUp和TearDown加载初始环境信息和清除相关资源

JUnit4的特点:

1.必须引入org.junit.Test采用注解方式,类开始的时候要标记@Test

2.必须引入类(org.junit.Assert.*)

3.采用@Befor和@After加载或者清除资源

4.提供对异常的测试@Test(expected = "可能抛出的异常")

5.测试响应时间@Test(timeout=1000)(单位:毫秒)

 

 

附上一个JUnit4的例子:

目标类:

public class JunitDemo {
 /**
  * 格式化字符串 如: userName --> user_name
  * @param str
  * @return
  */
 public static String wordFormat(String str) {
  if (str == null) {
   return null;
  }
  Pattern pattern = Pattern.compile("[A-Z]");
  Matcher matcher = pattern.matcher(str);
  StringBuffer sb = new StringBuffer();
  // find()尝试查找与该模式匹配的输入序列的下一个子序列
  while (matcher.find()) {
   if (matcher.start() != 0) {
    // appendReplacement(StringBuffer sb,String
    // replacement)实现非终端添加和替换步骤。
    // matcher.group()返回由以前匹配操作所匹配的输入子序列。
    matcher.appendReplacement(sb, "_" + matcher.group());
   }
  }
  // appendTail(StringBuffer sb)实现终端添加和替换步骤。
  return matcher.appendTail(sb).toString().toLowerCase();
 }
}

 

测试类:

public class JunitDemoTest {
 // 1.必须有org.junit.Test注解 2.方法必须声明为void
 @Test
 public void testWordFormat() {
  String target = "userName";
  String result = JunitDemo.wordFormat(target);
  assertEquals("user_name", result);
 }

 /**
  * 测试null情况
  * 测试不通过
  */
 @Test
 public void testWordFormatNull() {
  String target = null;
  String result = JunitDemo.wordFormat(target);
  assertNull(result);
 }
 
 /**
  * 测试为空的情况
  */
 @Test
 public void testWordFormatEmpty() {
  String target = "";
  String result = JunitDemo.wordFormat(target);
  assertEquals("", result);
 }
 
 /**
  * 测试大写字母开头的
  */
 @Test
 public void testWordFormatBegin() {
  String target = "UserSex";
  String result = JunitDemo.wordFormat(target);
  assertEquals("user_sex", result);
 }
 /**
  * 测试大写字母开头的
  */
 @Test
 public void testWordFormatEnd() {
  String target = "userSeX";
  String result = JunitDemo.wordFormat(target);
  assertEquals("user_se_x", result);
 }

}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics