12
本本本本本本本本 Vic Chih 2015-12-04

Vic weekly learning_20151204

Embed Size (px)

Citation preview

Page 1: Vic weekly learning_20151204

本週學習心得分享Vic Chih2015-12-04

Page 2: Vic weekly learning_20151204

本週主題• Regular Expression• Unit test

Page 3: Vic weekly learning_20151204

Regular Expression• Regular Expression是什麼 ?

– 使用特定字元符號來建立規則– 可以用來做字串的比對、刪除、替換、分群、切割或拷貝重製等工作

• 優點 ?– 可以減少 GIGO的狀況– 大量文本的字串搜索

Page 4: Vic weekly learning_20151204

Regular Expression• Character Classes

– 描述某類字元的集合– [A-Z][a-z][0-9]– [^abc]

• Metacharacters– Mteacharacters 在 regular expression 中具有獨特的意義– 設定規則

Page 5: Vic weekly learning_20151204

Regular Expression - Metacharacters• Metacharacters

– ^ 放在字串前 ^abc 可以用來表示 abc, abcdefg, abc123, – $ 放在字串後 abc$ 可以用來表示 abc, endsinabc, 123abc – . 任何字元 ( \n 除外 )– | 或的概念 /image\.(jpg|png)/ 可以用來表示 'image.jpg' 或

'image.png' – {...} 表示前一符號在字串中的重覆次數 a{1,3}-> a 、 aa 、 aaa– [...] 表示字串含有括號中任一字元的內容– (...) 表示一個 sub pattern  /The h([0-9]) means Title (\1)/ – * 表示字串中有 0 到無數個其前一符號的內容– + 表示字串中有 1 到無數個其前一符號的內容

Page 6: Vic weekly learning_20151204

Regular Expression - Metacharacters• Metacharacters

– ? 表示字串中有 0 到 1 個其前一符號的內容– \ 表示轉義 (escaping) (\\ -> \) (\. -> .)– \w 表示任何一個字元與數字以及 '_' ,意同 [a-zA-Z0-9_] – \W 表示任何一個 \w 以外的字元。意同 [^a-zA-Z_0-9]– \s 表示任何一個空白符號,包括 \t, \v 等。意同 [\f\n\r\t\v]– \S 表示任何一個非空白符號。意同 [^ \f\n\r\t\v]– \d 表示任何一個數字,意同 [0-9] 。 – \D 表示任何一個非數字,意同 [^0-9] 。

Page 7: Vic weekly learning_20151204

Regular Expression• Example

• Group[0] = D2010000Group[1] = D20Group[2] = DGroup[3] = 10Group[4] = 000Group[5] = 0

Page 8: Vic weekly learning_20151204

Unit test

• 單元測試可以提供迴歸測試的保護,在每一次異動完程式,可以單鍵執行就知道是否破壞了原本對物件行為的預期• 單元測試可以透過一些輔助設計,來達到與外部環境、服務、相依隔絕,而僅測試該物件本身的邏輯,以及與外部的互動是否符合預期• 單元測試的原則

– 一次只測試一種測試案例,只測試目標物件一種方法– 最小的測試單位– 不與外部(包括檔案、資料庫、網路、服務、物件、類別)直接相依– 不具備邏輯– 測試案例之間相依性為零

Page 9: Vic weekly learning_20151204

Unit test• 撰寫單元測試的程式碼時的 3A原則:

– Arrange : 初始化目標物件、相依物件、方法參數、預期結果,或是預期與相依物件的互動方式。– Act : 呼叫目標物件的方法。– Assert : 驗證是否符合預期。

Page 10: Vic weekly learning_20151204

Unit test• example

Page 12: Vic weekly learning_20151204

Thank you for your listening