需要知道一些常规的正则表达式语句,然后可以仿照规则写出一下正则表达式语句。然后是关于junit测试.
知道了一个之前看过的文档,然后有功夫就看一下那个文档就可以,或者后面找时间搜索一下。
正则表达式是一个字符串:
由^开头
由$结尾。
[]表示可取值的范围。
下面两个表达式等效:
^[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); } }