junit学习笔记一

Junit4相通对于junit3有以下几个特点.

1,Junit4不用去继承TestCase

2.Junit4增加Annotation注解,简化单元测试的编写

3,测试的方法名可以随便起,但最好沿用Junit3风格.用testXXX().这样能见名知意.

4,对异常处理方面有了较大改进,如:@Test(expected = Exception.class)通过expected参数大大简化了处理

5,新增@BeforeClass注解和@AfterClass注解,全局只执行一次.这是以前版本没有的功能.

6,@Before注解和@After 注解在每个测试方法前后执行一次.

7.在Junit4中,套件语义被两个新注释所替代。@RunWith(Suite.class)和@SuiteClasses({Test1.class,Test2.class})

以下面的这个BetsFilter为例,编写单元测试.

  1. package com.dadao.util;
  2. import java.util.regex.Matcher;
  3. import java.util.regex.Pattern;
  4. public class BetsFilter {
  5.     public String formatBets(String bets){
  6.         String result=null;
  7.         String filtedFirstBets = bets.replace("-""/");
  8.         String oldstr = ".0";
  9.         result=filtedFirstBets.replace(oldstr, "");
  10.         String regex = "((//d//.//d)0).*";
  11.         Matcher matcher = Pattern.compile(regex).matcher(result);
  12.         if(matcher.matches()){
  13.             result = result.replaceAll(matcher.group(1), matcher.group(2));
  14.         }
  15.         return result;
  16.     }
  17. }

单元测试类如下:

  1. package com.dadao.util;
  2. import org.junit.Assert;
  3. import org.junit.BeforeClass;
  4. import org.junit.Test;
  5. public class BetsFilterTest {//注意命名规范,较好的命名方式应该是要测试的类名后面加上"Test"
  6.     private static BetsFilter betsFilter;
  7.     @BeforeClass //该方法和@AfterClass标注的方法一样,必须是静态的.全局只执行一次
  8.     public static void initBetsFilterTest(){//
  9.         betsFilter = new BetsFilter();
  10.     }
  11.     @Test 
  12.     public void testFormatBets(){//虽然测试方法的名字可以随便取,但要养成好的代码编写习惯,见名知意.
  13.         String result = betsFilter.formatBets("2.50-3.0");
  14.         Assert.assertEquals("2.5/3",result);
  15.         String result2 = betsFilter.formatBets("0-0.5");
  16.         Assert.assertEquals("0/0.5",result2);
  17.     }
  18.     @Test(expected = java.lang.NullPointerException.class )//如果未抛出NullPointerException,则失败
  19.     public void testFormatBets2(){
  20.         betsFilter.formatBets(null);
  21.     }
  22.     @Test 
  23.     public void testFormateBets3(){
  24.         String result = betsFilter.formatBets("");
  25.         Assert.assertEquals("", result);
  26.     }
  27.     @Test(timeout = 1)//如果被测试的代码执行超过一豪秒,则失败.
  28.     public void testFormatBets4(){
  29.         betsFilter.formatBets("2.50-3.0");
  30.     }
  31. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值