你的位置:首页 > Java教程

[Java教程]正则表达式 和 junit测试


需要知道一些常规的正则表达式语句,然后可以仿照规则写出一下正则表达式语句。然后是关于junit测试.

 

 

知道了一个之前看过的文档,然后有功夫就看一下那个文档就可以,或者后面找时间搜索一下。

 

正则表达式是一个字符串:

由^开头

由$结尾。

[]表示可取值的范围。

\\d表示数字。

下面两个表达式等效:

^[0-9]*$

^\\d*$

都表示若干数字

下面这个表示多个汉字:

^[\u4e00-\u9fa5]{0,}$

汉字的码集是从\u4e00-\u9fa5

所有英文字母和数字:

^[a-zA-Z0-9]*$     

4到40位数字和字母:

^[a-zA-Z0-9]{4,40}$

至少一位应为字母:

^[a-zA-Z]+$

\w与  ^[a-zA-Z0-9]*$     等效。

所以我们可以写一个简易邮箱的验证:

regex = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";

 

通过 String test = new string(forTest);

test.matches(regex)来比较

 

 

以下代码:package com.letben.regex;public class Regex {  public static void main(String[] args) {     String  regex = "^[0-9]*$";      String  msg = "34";      boolean isok = msg.matches(regex);      System.out.println(isok);      regex = "^\\d*$";      System.out.println(msg.matches(regex));      System.out.println("***********************");      regex = "^\\d{0,3}$";      System.out.println(msg.matches(regex));      System.out.println("***************************");      regex = "^[\u4e00-\u9fa5]{0,}$";      msg = "汉字";      System.out.println(msg.matches(regex));      System.out.println("********************************");      //regex = "^[A-Za-z0-9]+$";      regex = "^[A-Za-z0-9]{4,40}$";      msg = "1234";      System.out.println(msg.matches(regex));      //  全是英文字母      regex = "^[A-Za-z]+$";      msg = "ABCcddsd";      System.out.println(msg.matches(regex));      regex = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";      msg = "liguohua1110@163.com";      System.out.println(msg.matches(regex));  }}

 

 

测试:

 

这个讲的就很浅,比起之前学校里面讲过的。

要被测试的类:

 

package Calculate;public class Calculate {  public int add(int a,int b){    return a+b;  }  public int minus(int a,int b){    return a-b;  }}

 

右键当前类,创建一个Junit test case,这个就是测试用例,对于 开发来说我们可以创立与之对应的很多个测试用例,构成测试用例集,一旦测试用例集写完善以后,就可以让不定数量的源代码过来接受检测,这个测试用例集其实野蛮费脑筋的。这个就是 传说中的白盒测试。

总之,现在还没有那么深入,不过这个 的确是要被写的。现在现有这么一个印象。笔记千万不能丢就是了!换句话说,我不太想背这个地方,随着使用次数的增多,慢慢会熟悉这里面的原委的。爆出来的错误:errors属于语法错误。Failure属于逻辑错误。

 

package Calculate;import static org.junit.Assert.*;import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Test;public class TestCalculate {  /*这是一套  Calculate c ;  //在每一次方法使用之前调用获得该类的对象    @Before    public void getMyClass(){      c=new Calculate();    }    //在每一次方法使用之后释放该类的对象    @After    public void dismissMyClass(){      c=null;    }  */  //这里面放一个全的测试用例,到时候执行就可以了。  //用以检测不同的结果    static Calculate c;  //在类创建之前得到这个对象  @BeforeClass  public static void getMyClass(){    c = new Calculate();  }  //在类创建之后,释放这个对象。  @AfterClass  public static void dismissMyClass(){    c = null;  }  @Test  public void testAdd(){    int result = c.add(4, 5);    assertEquals(9, result);  }  @Test  public void testMinus(){    int result = c.minus(4, 3);    assertEquals(1, result);  }}