2013年3月19日 星期二

簡述TAC單元測試--使用mockito

http://mockito.org/ mock: n. 名詞 仿製品; 贗品; a. 形容詞 假的; 假裝的; 模擬的

 mockito 是一個 Java 的 mock 框架,可以在單元測試的時候協助我們依據介面,建立模擬物件,聚焦測試的重心。

2012年9月7日 星期五

財稅案DBUnit測試重購

在財稅案的單元測試中使用DBUnit,來進行DAO的unit Test, 但是因為原本的寫法有點雜亂,所以來調整一下

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中雖然繪製該欄位為一行的高度,但是其內容文字有多行時,
會自動依據內容文字延展。

2011年8月4日 星期四

JQuery之軛

今天體會到Jquery的可怕之處,以前只知道他極度方便,
可以活用selector來對許多element進行調整、設定,
甚至一些事件、css完全不用寫在html tag中,
現在發現這樣作法的後果就是...當你使用過多之後,
變得很難掌控程式的行為,
因為可能不清楚某些js(自己寫的或是用別人的)
會去bind的event,像是不知道為什麼會觸發某些事件,而且找不到觸發點...
...
...
...這樣是要怎樣debug啊?有些狀況可能連中斷點都不知道要設在哪邊。

看來使用JQuery中還是有很多學問的,沒有清楚的規劃架構、框架,
它可能便利反而造成更多問題,就像何金銀發現"拯救懦夫"只是一個騙錢的幌子一樣。

2011年8月1日 星期一

Object

在JAVA的 open Source世界中,常會看到許多名詞 VO,DAO...等XXO之類的東東。
這邊做一個備忘的整理:

2011年6月23日 星期四

javascript 檢查輸入是否為英數字

在撰寫web系統有時需要限制欄位只能key 英文 或 數字,
而不給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;
  }
}