2012年12月24日 星期一

[Java][Android] Get private member for Unit Test

在 Unit Test 時,常常有的一個困擾是,
如何存取一個 class 的 protected / private member,
在加了好幾個 getter method 後,

參照下面連結後,

http://stackoverflow.com/questions/1771744/accessing-private-variables-in-java-via-reflection
 
最終整理出一個目前較適合自己的寫法。(兼顧彈性與安全性)
這樣每一個需要測的 class 只需要加一個 getInstanceField() 就可以了。

public class SomeActivity extends Activity {
    
    protected ListView mListView;
    
    public static Object getInstanceField(Object instance, String fieldName) {
         
         // Disable this function if it is a commericial build
         if ( true == COMMERICIAL_BUILD ) {
             return null;
         }
         
         Object obj = null;
         try {
             Field field = SomeClass.class.getDeclaredField(fieldName);
             obj = field.get(instance);
         } catch (Exception e) {
             e.printStackTrace();
         }
         return obj;
    }
}

至於在 Unit Test 那兒,就可以寫成

SomeActivity activity = getActivity();
ListView listView = (ListView) SomeActivity.getInstanceField(activity , "mListView");

還蠻方便。

P.S. 這方法似乎沒辦法捉到 superclass 的 member。需要在 superclass 加同樣的一段code

2012年10月20日 星期六

2012/10/18-21 Singapore 新加坡四天三夜自由行(下)


荷蘭村、巴耶利巴、濱海灣金莎


這是這次新加坡行程中的最後一天了,鑑於前幾天仍有些許的遺憾。所以昨晚又認真的花了兩個小時翻掉大半行程。加個荷蘭村補足我沒買到 Lim's Arts & Living 的漂亮公雞的遺憾,然後再加個烏節買相機充電器充電行程,為的就是晚上的濱海花園可以拍出美美的照片。


荷蘭村(Holland Village)


Holland Village
荷蘭村由於位置較遠、景點趣味度略低,所以當初並沒有將這個行程排進去,但這次為了要買漂亮的公雞,所以還是忍痛硬把這個行程排進去。但去了後還是後悔了,Lim's Arts & Living 的本店的確比分店好很多,但也只到不錯的等級。這兒早上能逛的地方、能吃的店也不多。


巴耶利巴(Paya Lebar)




娘惹文化區,當初在「搭地鐵玩新加坡」中提到這個點時,裡面列了一大推值得去的點,像是什麼什麼五星、天天、文東記海南雞飯啊、加東叻沙、娘惹餐廰都在這,所以興沖沖的排了這個點,後來才發現旅遊書上的行程實在是太坑爹了。我極度懷疑這比例尺有嚴重的問題,不然不會走到快死掉還沒走四分之一。而這兒的精華區都在加東,建議大家公車、計程車直接搭到 Katong Mall 那附近逛一逛吃一吃回去就好,比較不會走到累死。


Shop n save

這次來新加坡因為行程規畫得很倉促,所以一直沒有排好要去哪兒買名產回去請同事吃,本來進這間只是因為走到快死掉進來買杯飲料喝,卻意外看到之前別人介紹的一些名產。



參考部落格:http://blog.yam.com/ritachen168/article/28779254

天天海南雞飯(Tian Tian Hainanese Chicken Rice)

Tian Tian Hainanese Chicken Rice
這是我們在新加坡的唯一一餐海南雞飯,所以請原諒我沒辦法比較出跟「文東記」或「五星」的差別,只能大概提一下吃的感覺。



我們選了半隻雞的套餐,海南雞很好吃,至於另一個像烤雞的就沒有那麼好吃了。飯有點乾。

328 加東叻沙(328 Katong Laksa)



328 Katong Laksa
名店加東叻沙,牆上可以看到滿滿為患的明星照片。就我自己吃的感覺是,濃但口感有點單調,個人沒有很喜歡。(我比較愛 Toast Box 的,哈~~)



金珠肉粽(Kim Choo Kueh Chang)


味道蠻特別的好吃肉粽,因為這兒美食太多,所以我們是買回旅館當宵夜吃的。


Kim Choo Kueh Chang
這兒也有賣「窩打(Otak Otak)」,基於是台灣吃不到的異鄉美食,也一人買了一個回去吃吃看。看書上的描述是「去骨的鯖魚肉混合椰漿、辣椒、蔥頭、香茅、藍薑、黃薑、....包在香蕉葉中的南洋美食」回到家吃了一口才發現,這....這....根本是結涷的叻沙嘛......結果我吃了一口就丟掉了。


濱海灣金沙(Marina Bay Sands)


濱海花園(Gardens by the bay)


Gardens by the bay
這個景點原本是今天的重頭戲,但很遺憾的是,前面由加東回到旅館後再出門的那一瞬眼,被豪大雨淋得全身熱情全消(不是說四季如夏,不是還沒到雨季,去四天下四天雨是什麼鬼啊....氣炸了),之後豪雨雖然停了,但一邊忍著鞋內的水的不適,一邊淋著時不大時不小的雨,加上手機在夜晚實在是拍不出什麼好照片,提不起興緻,只能說遺憾了,唉....



濱海灣金沙酒店(Marina Bay Sands Hotel)


Marina Bay Sands Hotel
順道經過的,聽說上面有空中花園,空中游泳池,在「我可能不會愛你」劇中,大仁哥在大廈頂端靠近邊邊游泳就在這兒了。


濱海灘金沙購物城(The Shoppes at Marina Bay Sands)


這間購物中心超大的,一直走走走,還是走不到底。裡面大多是很貴的一些名牌,所以就不是我們的菜啦。裡面連食物都還蠻貴的,相同價格不同享受。這上面有劇院,去的當天剛好是陳奕迅的演唱會,裡面還有賭場,檢查很嚴格,進場大概就要排個十幾分鐘了,跟澳門的隨意進出大大的不同。雖然我對賭場沒興趣,但有賭場的好處是,可以24小時寄提行李,實在是太方便了,大大減輕了我們包包的重量。



黃亞細肉骨茶(Na Ah Sio Bak Kut Teh)


Na Ah Sio Bak Kut Teh
黃亞細在新加坡是很有名的肉骨茶,味道很濃的蒜頭味湯加肉骨,兩份肉骨茶,一盤燙青菜,再一碗飯,共 $17.8。不過茶味我就喝不出來了,最後回台灣有點小可惜的是沒有買一包調味包回來煮煮看。


http://www.ngahsiobkt.com/

2012年10月19日 星期五

2012/10/18-21 Singapore 新加坡四天三夜自由行(中)

武吉士、怡豐城、克拉碼頭、摩天觀景輪、老巴剎


今天的原訂行程只有前四項,至於最後一項,是看看時間好像夠而塞進來的。最後也順利的跑完全程。

武吉士(Bugis)


武吉士是伊斯蘭世界。逛街跟吃東西都是很不錯的點。我們早餐的第一站就選在這兒了。這兒可以看到蠻多伊斯蘭的服飾,還有蘇丹回教堂(Sultan Mosque)也蠻特別的,從旁邊經過時人還多的。也有阿拉伯香水店(Jamal Kazura Aromatics),我們在裡面聞香聞了好久。這兒安排 2 - 4 小時並不為過。



蘇丹回教堂(Sultan Mosque)

這兒我們除了亂逛外,去比較久的就是 Zam Zam 跟馬來歷史中心了,本來想多逛一下的,但因為下雨,也只能竄逃到下一個室內景點。


Zam Zam Restaurant


第二天的早餐,就選這家了,聽說在小印度也有一家叫 Mubarak 的印度菜也不錯,但因為有不少部落格說好像會算錯錢(還是低消?)。我就不想去吃了,畢竟再怎麼好吃,被當作冤大頭的感覺蠻不好的

Zam Zam裡面的服務還蠻不錯的,像我跟我哥在那看menu看很久,還沒點,裡面的人也沒有那種不耐煩的態度。點完後,價格也不知道為什麼比menu還便宜。


Zam Zam Restaurant Menu



我們一共點了一個 $7 大小羊肉的印度餡料煎餅(Mutton Murtabak)跟 $5 的羊肉咖哩(Mutton Curry),(意外點了一堆羊肉是怎樣...Orz...),還有冰拉茶跟冰檸檬水(Lemau Ice),大概是最後老板們幫我們調整一下還是如何的,最後這樣只收 $10,很獨特的味道,算是便宜又不錯吃。只是遺憾的是竟然沒有看到旅遊書上的印度煎餅(Roti Prata)。

參考部落格:http://blog.yam.com/ritachen168/article/28778688


馬來歷史中心(Malay Heritage Centre)


進來這兒就是純屬意外,反正逛啊逛的,就走了過來,看啊看的,就花了每人 $4 的門票進去了,裡面的好處是可以了解新加坡馬來人的一些文化,單看裡面的展的東西其實還蠻無聊的,但這兒有個好處是,他有導覽,也就是買完門票後,可以去導覽那兒由他帶大家進去一項項講,由於去的時侯,剛好有一堆青春無敵的高中生來,所以我們就這樣跟著一個導覽的聽一聽,再去下一個導覽那兒聽一聽。




至於出來後,由於下起雨來,所以就連滾帶爬的離開伊斯蘭的世界衝去地鐵站了。


怡豐城(Vivo City)


會將怡豐城排進行程中主要是因為,聽新加坡的一個同事提到,那兒非常的熱,通常中午都是待在百貨公司,然後近傍晚再出來活動,加上來到這兒,總是得買些名產跟記念品回去的,最後這個室內行程就成了我們的雨備行程。


怡豐城(Vivo City)

來到這兒,還有一個原本打算去的店,就是 Lim's Arts & Living 的分店,只是遺憾的是,這間分店裡面的產品,跟逛台灣觀光景點的工藝品差不多,令人十分失望。害我還一度跑到門口看了招牌看了好幾次。(跟「搭地鐵玩新加坡」那本書上附的漂亮公雞工藝品圖看起來,等級實在差太多了)


另外,也在這兒超市逛了一下,但看很久最後只買了肉骨茶調味包跟白咖啡包。(到這一刻我才知道白咖啡只是加了牛奶的即溶咖啡包,這世上根本沒有所謂的白咖啡豆)

克拉碼頭(Clarke Quay)


克拉碼頭是第二天的預定晚餐地,這兒晚上的河畔風情迷人、夜店林立,好不熱鬧。





珍寶海鮮樓JumBo Seafood)


再來又是當地人推薦的珍寶海鮮樓了,這是我們在新加坡吃的最貴的一道,也是最棒的一道。我們一共點了辣椒螃蟹(Chili Crab)、炸饅頭、和海鮮炒飯。以兩個人來說稍多了一些些,但還是全被我們嗑完了,因為實在太好吃了。加上茶資與 17% 的稅,共花了 $102.63。


  • 辣椒螃蟹($69.6):由於前陣子剛由香港回來,吃了橋底辣蟹,比較起來,橋底辣蟹光是蟹肉的味道就輸了,珍寶海鮮樓的斯里蘭卡蟹完全沒有腥味,肉很甜。芶芡的微辣蛋花配上鮮甜的蟹肉簡直是絕配。避風糖炒蟹的乾澀、重口味料里法相對下,好像只是為了用重口味壓下蟹肉本身的腥味。
  • 炸饅頭($2):這個是用來配上一盤的醬汁的,很搭。
  • 海鮮炒飯($12):炒飯是被menu上的圖片吸引而點的,他的炒飯,粒粒分明的長米,清爽略淡的炒飯,單吃或搭上蟹肉的醬汁皆相宜。
Chili Crab@JumBo Seafood 
SFood Fried Rice@JumBo Seafood
http://www.jumboseafood.com.sg

摩天觀景輪(Singapore Flyer)



摩天觀景輪還蠻值得上去繞繞的,在觀景輪上新加坡的夜景看來非常漂亮。(我可能不會愛你劇中有這個景點)

觀景輪可賽門廊(Promenade)地鐵站走過去,繞一圈再回來地鐵站,由於是平日,旅客不多的情況下,我們共花了 1.5 個小時。

http://www.singaporeflyer.com

在繞完後,原訂的行程已經跑完了,由於才 9:40,深感第一晚在夜間動物園花的時間太多,所以臨時決定趁天氣好,多衝一個行程看看。反正就算累,也累個一兩天而已,再慘再慘,最多搭計程車回飯店。

老巴剎(Lau Pa Sat)


老巴剎位於萊佛士坊(Raffles Place),地圖看一看走一走就到了,看到下面部落格推薦的是在文泰街(Boon Tat Street)上,號碼 7、8 的這一間,至於飲料我們也從善如流的買對面一堆人排隊的一間。

部落格連結:【新加坡】老巴剎大啖沙嗲

沙嗲(Satay)

Best Satay 8

我們買的是十串羊肉、十串雞肉、六串蝦,共 $24,每一串都小小的,但畢竟只有宵夜,這樣的份量再加上對面 Kopitiam 的飲料,兩個人是蠻剛好的。重點是還真的蠻好吃的,今天真是完美的美食之旅啊。

KOPITIAM
KOPITIAM Menu

2012年10月18日 星期四

2012/10/18-21 Singapore 新加坡四天三夜自由行(上)

樟宜機場、多美歌、牛車水、小印度、夜間動物園


這是第一天的原訂行程。因為抵達樟宜機場為中午12:30,所以原本認為是塞得下的,但畢竟機場的平面圖跟一些定點沒有先查的迷路,與飛機小小誤點,最後只好刪掉小印度的行程。


樟宜機場(Changi Airport)


樟宜機場共三個航廈,排列成ㄇ字型,上面第一航廈,左邊是第二航廈,右邊是第三航廈,航廈間有接駁列車可搭。至於ㄇ字型的下方就是捷運了,合起來剛好是完全的正方型。第二航廈或第三航廈都有捷運的入口。

宜機場的網站有各個航廈的平面圖,也有店家資訊,要買什麼名產、或回國前的最後一餐難免離不開他。

http://www.changiairport.com/

新加坡電訊預附卡(Singtel Prepaid Mobile Card)


至於一開始讓我們迷路很久的是買3G SIM卡,想上 facebook 打卡炫耀沒有這個怎麼行呢?但我跟我哥一開始很「給掰」的用英文問人,結果問是會問,但人家說什麼我們聽不懂啊!!!就這樣隨便聽聽完又不好意思問他說什麼,就OK、OK的回答後繼續亂逛亂找,最後用中文問話才知道SIM卡在換錢的櫃台(Money Exchange)就可以買了。

四天三夜的行程配上72小時的無限上網是最剛好的,他最便宜的方案是 $28 元,其中 $15 元接上手機後,用簡訊的互動轉成無限上網,接電話免費(好像是半年內都可以用),剩下的 $13 就用來打電話了,就我當天晚上測試的結果,約 30 秒就花了 $10 了。

http://info.singtel.com/personal/phones-plans/mobile/prepaid/benefits


遊客通行卡(Tourist Pass)


會選遊客通行卡的主要原因是,他是依1~3天不同售價,期間可隨意搭乘地鐵、輕軌、與巴士,粗估CP值可能會覺得跟易通卡(ez-link Card)差不多,但想想「出站上廁所」「臨時加點」都不用再加錢的份上,可說是十分方便與划算

遊客通行卡並不是所有的入口處櫃台都有賣,只有票務中心(ticket office)才有出售。宜機場的票務中心在靠近第二航廈的捷運入口樓梯後方。

三日的通行卡加上押金 $10 共 $30。因為退卡有效期限是五天,所以回國前一定要退,才拿得回押金,至於退卡就不一定要在票務中心了,好像普通的售票處就可以了。(我們在最後一天才發現票務中心 12 點才營業,差點以為我們的押金拿不回來了說 Q_Q)


土司工坊(Toast Box)


Toast Box
這間是我們在第二航廈看到的,由於旅遊書有列,加上迷路迷到累了,就決定在這解決第一天的中餐。我們一共點了約兩份餐。牛油土司(Butter Thick Toast)、半熟蛋薏米水、冰拉茶(Teh Tairk)叻沙(Laksa),共 $9.8。


  • 牛油土司:很香濃,但對早餐有厚片吃的台灣人來說,應該只能算是不錯吃的厚片吧。
  • 半熟蛋:就............嗯,反正是蛋黃生、蛋白半熟就是了。
  • 薏米水:在經過兩三次的嚐試後,個人非常非常非常非常懷疑他只是很淡很淡很淡的薏仁清水,就像牛肉清湯沒有牛肉一樣,薏仁清水也是沒有薏仁的。
  • 拉茶:這幾天喝到的都一樣好喝。
  • 叻沙:這幾天我一共吃過「Toast Box」與「328加東叻沙」,雖然「328加東叻沙」有許多名人加持,但我是比較喜「Toast Box」,味道濃厚不失清爽,入口後又可以感受到細緻的層次感。大推~~~
http://www.toastbox.com.sg


亞坤咖椰土司(Ya Kun Kaya Toast)


Ya Kun Kaya Toast
亞坤是最後一天去吃的,在第三航廈。為了集中資訊,我就一起寫在這了,這間在台灣也有分店,我們一共點了兩份套餐,分別是「咖椰土司+半熟蛋+冰拉茶」與「牛油土司+半熟蛋+拉茶」,共 $10.4。



但我忘了問那份是牛油,那份是咖椰了,反正就是一份香甜,另一份有點乾乾的。

http://www.yakun.com


多美歌(Dhoby Ghaut)


Innotel Hotel


新加坡應該還有蠻多不錯旅館,這兒單純列出我們選這間的原因...

  • 交通方便,靠近三條地鐵交匯處的多美歌地鐵站(Dhoby Ghaut)
  • 價格適中,非太便宜之廉價旅館
  • Booking.com 中的評價不差
  • 房內免費無線網路

最後結帳含17%稅,三晚兩人共 $676.8。

http://www.innotelhotel.com.sg


牛車水(Chinatown)


原預訂為來新加坡的第一餐就是牛車水這兒的天天海南雞飯,但這次很遺憾的麥士威熟食中心(Maxwell Food Centre)這段時間在整修(都快餓死了還這樣捉弄人 Q_Q)。所以我們只好去亂逛亂找別的東西吃了。


Maxwell Food Centre
這兒的幾條街、跟廟都蠻有特色的,值得多花點時間逛。其中我特別想來這兒是因為想看左下圖的馬里安曼興都廟(Sri Mariamman Temple),南印度廟這種屋頂有雕刻眾生相的廟我在書上看到就很想來親眼見見。右下是佛牙龍華院(Buddha Tooth Relic Temple & Museum),好像很有名,但飢腸轆轆的兩人已經沒心情進去逛了。






 最後,終於在地鐵站另一邊(C出口、New Market Road Block 32 Food Centre)的門口附近找到一間中峇魯飽點(Tiong Bahru Pau),吃了兩個好吃的包子,算是解決了晚餐。$3.4

另外這兒還有間果汁店,每杯只要約 $2.5 ,算是這幾天喝到平價又好喝的果汁了。

Tiong Bahru Pau

在「中峇魯飽點」隔避一點點的「麻辣香鍋」也是排滿一堆人。



夜間動物園(Night Safari)


夜間動物園地鐵無法到達,一定要搭巴士或計程車,所以這次我們是搭地鐵到宏茂橋(Ang Mo Kio),然後在靠近C出口的大樓內走到最末一個公車站搭138號來回的。巴士單程約 30 分鐘,坐到最後一站就是了。




那時在排這個行程時我猶豫了很久,畢竟評價蠻兩極的,但這又是全世界唯一的夜間動物園,不去可惜,但後來發現,花時間去了也可惜.....Q_Q

Night Safari
裡面共兩場秀,一個列車導覽,還有三條小徑可以走。列車導覽沒辦法好好看動物,車上的英文導覽我們又聽不懂。秀還可以,至於那三條小徑,又有點累,也怕沒有公車回去,就沒去逛了,最後就記念品買一買就回去了....嘆


夜間動物園有跟摩天觀景輪的組合票價,一份 $58。