http://mockito.org/
mock: n. 名詞 仿製品; 贗品; a. 形容詞 假的; 假裝的; 模擬的
mockito 是一個 Java 的 mock 框架,可以在單元測試的時候協助我們依據介面,建立模擬物件,聚焦測試的重心。
敬畏耶和華是智慧的開端
2013年3月19日 星期二
2012年9月7日 星期五
2011年9月13日 星期二
JAXB from xsd generate java class
要從XSD產生出對應的java class, 以便在專案中使用JAXB來 parse及build xml檔。
1.取得XSD
2.執行xjc 產生java class
指令是
xjc -p org.iii.test.jaxb.whitesuger xmlSchema\WhiteSuger\WhiteSuger.xsd
但是因為以前的系統xsd是有中文的,也就是產生的xml 中tag是中文的...有點腦殘...所以generate出來的java class編碼會亂掉,如果一個一個處理會弄到天荒地老。
好險網路的大德找到方式。
將指令改為如下:
java -Dfile.encoding=UTF-8 -cp "C:\Program Files\Java\jdk1.6.0_25\lib\tools.jar" com.sun.tools.internal.xjc.Driver -p gov.fdc.tac.jaxb.context.basic 基本標籤.xsd
這樣執行就可以轉出utf8的code
2011年8月8日 星期一
ireport stretch
說明幾個ireport參數:
Stretch with overflow: 可以設定該欄位高度依據其內容而延展。
也就是說在ireport中雖然繪製該欄位為一行的高度,但是其內容文字有多行時,
會自動依據內容文字延展。
Stretch with overflow: 可以設定該欄位高度依據其內容而延展。
也就是說在ireport中雖然繪製該欄位為一行的高度,但是其內容文字有多行時,
會自動依據內容文字延展。
2011年8月4日 星期四
JQuery之軛
今天體會到Jquery的可怕之處,以前只知道他極度方便,
可以活用selector來對許多element進行調整、設定,
甚至一些事件、css完全不用寫在html tag中,
現在發現這樣作法的後果就是...當你使用過多之後,
變得很難掌控程式的行為,
因為可能不清楚某些js(自己寫的或是用別人的)
會去bind的event,像是不知道為什麼會觸發某些事件,而且找不到觸發點...
...
...
...這樣是要怎樣debug啊?有些狀況可能連中斷點都不知道要設在哪邊。
看來使用JQuery中還是有很多學問的,沒有清楚的規劃架構、框架,
它可能便利反而造成更多問題,就像何金銀發現"拯救懦夫"只是一個騙錢的幌子一樣。
可以活用selector來對許多element進行調整、設定,
甚至一些事件、css完全不用寫在html tag中,
現在發現這樣作法的後果就是...當你使用過多之後,
變得很難掌控程式的行為,
因為可能不清楚某些js(自己寫的或是用別人的)
會去bind的event,像是不知道為什麼會觸發某些事件,而且找不到觸發點...
...
...
...這樣是要怎樣debug啊?有些狀況可能連中斷點都不知道要設在哪邊。
看來使用JQuery中還是有很多學問的,沒有清楚的規劃架構、框架,
它可能便利反而造成更多問題,就像何金銀發現"拯救懦夫"只是一個騙錢的幌子一樣。
2011年8月1日 星期一
2011年6月23日 星期四
javascript 檢查輸入是否為英數字
在撰寫web系統有時需要限制欄位只能key 英文 或 數字,
而不給key中文,符號的可怕需求...
這邊提供從大學同學阿勇多年經驗的code...XD
========jsp中的input 欄位 兩個事件都要有============
//LimitInput('Num',false) 選擇只能輸入數字, 且不轉換成大寫(若為英文)
===============javascript==============
而不給key中文,符號的可怕需求...
這邊提供從大學同學阿勇多年經驗的code...XD
========jsp中的input 欄位 兩個事件都要有============
<input onkeydown="divChian();" onkeypress="LimitInput('Num',false);" type="”text”" />
//divChian() 擋中文//LimitInput('Num',false) 選擇只能輸入數字, 且不轉換成大寫(若為英文)
===============javascript==============
//擋中文
function divChian(){
var LOBJ_Lable = window.event;
if(LOBJ_Lable.keyCode == 229) //中文都會有299這個code
event.returnValue=false;
}
//LimitInput[參數,控制的物件,是否要轉大寫(true:要轉;false:不要轉)]
function LimitInput(LSTR_Type,LBOL_Chagecode){
var LOBJ_Lable = window.event;
//轉大寫;
if (LBOL_Chagecode==true){
if (LOBJ_Lable.keyCode >= 97 && LOBJ_Lable.keyCode<= 124){
LOBJ_Lable.keyCode-=32;
}
}
switch (LSTR_Type){
//只能輸入英數
case "NumEng":
if ( (LOBJ_Lable.keyCode >= 48 && LOBJ_Lable.keyCode<= 57)||
(LOBJ_Lable.keyCode >= 65 && LOBJ_Lable.keyCode<= 90)||
(LOBJ_Lable.keyCode >= 97 && LOBJ_Lable.keyCode<= 122)){
return LOBJ_Lable.keyCode;
}else{
return LOBJ_Lable.keyCode =0;
}
break;
case "Num":
if(LOBJ_Lable.keyCode < 48 || LOBJ_Lable.keyCode > 57){
LOBJ_Lable.keyCode = 0;
}
break;
case "NumDotMinus":
if ((LOBJ_Lable.keyCode >= 48 && LOBJ_Lable.keyCode<= 57)||
(LOBJ_Lable.keyCode == 45 || LOBJ_Lable.keyCode == 46)){
return LOBJ_Lable.keyCode;
}else{
return LOBJ_Lable.keyCode =0;
}
break;
}
}
訂閱:
文章 (Atom)