需要知道一些常規的正則表達式語句,然後可以仿照規則寫出一下正則表達式語句。然後是關於junit測試. 知道了一個之前看過的文檔,然後有功夫就看一下那個文檔就可以,或者後面找時間搜索一下。 正則表達式是一個字元串: 由^開頭 由$結尾。 []表示可取值的範圍。 \\d表示數字。 下麵兩個表達式等效:
需要知道一些常規的正則表達式語句,然後可以仿照規則寫出一下正則表達式語句。然後是關於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 = "[email protected]"; 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); } }