搜尋

搜尋結果

歐洲巴士Leo Express 二人同行人免費!
激安優惠
OHChance 旅遊誌・2019-02-06

買了2月3月去歐洲機票的版友可以留意下,主要經營捷克、斯洛伐克、奧地利、波蘭的 Leo Express 推出買一送一,只要選2人車票,然後在購買頁面 Discount code 處填入優惠碼 ldquo;LOVELEOrdquo; 再按 submit code 就可以省一人的票。布拉格去CK、Salzburg 去CK 等熱門路線一律可用喔。 Leo Express 路線如下:Prague ndash; Brno ndash; Bratislava ndash; BudapestSalzburg ndash; Linz ndash; Českyacute; Krumlov ndash; Českeacute; Budějovice ndash; PragueMunich ndash; Regensburg ndash; PragueVienna ndash; Brno ndash; Ostrava ndash; WarsawOstrava ndash; Krakoacute;w ndash; LvivOstrava ndash; Katowice ndash; Krakoacute;wKoscaron;ice ndash; Uzggorod ndash; Mukacheve ndash; RachivUstka ndash; Gdynia ndash; Gdansk ndash; Krakoacute;wKrakoacute;w ndash; Gdansk ndash; Gdynia  【促銷公司】LeoExpress【車次日期】即日起至3月31日【預訂時限】2月7日2359前預訂(捷克時間)【預訂方式】LeoExpress官網【預訂網址】httpswww.leoexpress.comen  附註:上述最低價錢為巴士公司公告之最優惠價格,或本站能找到的最低價格;每一車次有否優惠票價及所存票量由巴士公司決定,優惠票量有限售完即止。   價錢 Sample ndash; Salzburg 去CK 兩人同行一人價錢 ===== 想搵平機票去玩,即上 OH!Chance!澳燦旅行資訊 httpsohchance.info 去日本旅行買咩 JR Pass好?即上 OH!Note!小燦的旅行筆記做功課 httpsohnote.info 唔知間航空公司好唔好坐?馬上 Subscribe OH Chance Youtube 睇睇佢:httpsyoutube.comcOHChanceTravel 睇埋 Facebook 專頁 httpsfb.comohchance 第一時間獲得最新旅遊資訊!

【九州。遊記】鹿兒島屋台村 與日本人奇妙的交流!
走遍世界
原來世界這樣大・2018-08-20

屋台村hellip;相信去慣日本的朋友對屋台村一點也不會陌生了。屋台村是一條滿是特色的餐廳區域,有很多特色的小食,而在晚上是特別熱鬧。每間餐廳的座位不多,就像是有小小居酒屋的感覺。不能缺少的當然是喝酒了! 遊玩鹿兒島過後,跟朋友打算到屋台村吃晚餐。我們住在鹿兒島中央站附近,而屋台村正好就是我們回酒店必經的地方。本來只是跟朋友靜靜坐在一角,怎料到旁邊的日本人問我們的飲料好喝嗎,才發現我們是外國人。哈哈,難道我們兩個太像日本人了嗎?! 其實有不少日本人都不太敢說英文,知道我們是外國人都會放棄聊天,但奈何自己又不會日文,只好看著白白遠去,這是我去日本覺得最沒趣的一點。有時我都會恨我自己為什麼不好好學日語,讓自己到日本旅遊可以更加暢所欲言,奈何想做的事太多,但時間卻太少。 但這次遇到的兩位日本人反而盡量用他們以前學過的英文,嘗試跟我們聊天,屋台的老闆也是,聊著聊著這兩位日本人還送了兩件鹿兒島出名的雞肉刺身給我們試試!之前我們正躊躇要不要點! 他們走了,我們旁邊的換來一對從福岡來鹿兒島度假的情侶,老闆向他們介紹我們是從香港來的遊客。 這對情侶之中,正好一位曾經去過美國留學,一位是幼稚園老師,跟我同行的朋友也是從事教育工作,我們跟他們二人有著無窮無盡的話題。本打算快快在屋台吃個飯就回酒店休息,沒想到我們聊著聊著到差不多十二點才回家。 除了喝酒,熱鬧也是屋台的特色。很奇妙這樣認識了新朋友。在這氣氛中大家打成一片,一起喝酒、一起聊天,送給我一個盡興的晚上,也成為我在鹿兒島的一件難忘的小事!

宜家家居推出全新SÄLLSKAP限定系列
創意生活
Benjamin・2016-10-04

宜家家居將呈獻一個全新的主題設計系列 mdash; SAuml;LLSKAP限定系列。其設計靈感源自瑞典藝術和傳統工藝,以及一個關於「家庭居室」的概念。 SAuml;LLSKAP限定系列備有傢具、布藝產品及餐具,以最佳的方式把過去的經典靈感注入現代生活,將設計改良並提升。 宜家家居致力為大眾締造更美好的生活,因此會不定期推出各式各樣的主題設計系列,探索大大小小未知或新鮮的概念。我們以日常生活作為設計靈感,例如結合瑞典傳統或與知名設計師的合作企劃,亦會嘗試把特色藝術、工藝、新科技或物料融入創作過程當中,製造出令人驚喜及富實驗性的產品。 為生活而創造的空間 在一、兩個世紀以前,孩子的需要並不被重視,而美觀的設計亦只是富裕家庭的專利。直到後來,改變終於出現。具影響力的瑞典著名作家Ellen Key、瑞典藝術家Karin及Carl Larsson等人為一個讓家人共聚的空間的概念播下種子,及後演變成「家庭居室」(即瑞典文中的「allrum」)。 這並不單是指一個大家都可共同使用的空間,更是提倡將高質素而美觀的設計普及化,讓大眾都可擁有。SAuml;LLSKAP就是一個推動此設計意念的系列。瑞典宜家家居創作總監Mette Nissen介紹:「SAuml;LLSKAP的設計靈感源自瑞典藝術和十九世紀後期與二十世紀初期的工藝發展。 」 SAuml;LLSKAP的設計重心 誰說你不能熱愛城市繁華生活的同時亦嚮往農村的恬靜安逸?SAuml;LLSKAP備有傢具、燈飾、布藝產品及餐具,滿載瑞典傳統及鄉郊生活的獨特氣息。不論你身處何地,均能體驗到悠閒的瑞典生活。 更重要的是SAuml;LLSKAP的設計能完美融入每個空間。系列的傢具比數個世紀前的設計細小輕巧,並附有更多功能,適合現代小巧的生活空間。SAuml;LLSKAP系列的主要材料為實木,以最穩固的傢具為整個家庭製造出一個共同空間。當然,你亦可以在這舒適的空間內任意添加你喜愛的咕和暖氈。 Mette Nissen補充:「SAuml;LLSKAP的重點在於其受傳統圖案及技術啟發而製成的家用布藝產品,例如潑染及捆紮編織等特色技巧。 」 於房間內增添布藝品是轉變風格及設計的簡易方法。SAuml;LLSKAP系列的咕靈感源自傳統瑞典圖案,為現代生活添上一抹鄉郊生活的悠然寫意。 SAuml;LLSKAP的布藝產品重新演繹了一些昔日美麗的傳統圖案。設計師Maria Vinka說:「於十八世紀,潑染是一個自行創作獨特牆紙的相宜方法,不論是現代或傳統的居住環境,這些圖案均能完美地融入。」 利用布藝產品來製作你獨有的SAuml;LLSKAP小狗布公仔。只需尋找兩個相同的圖案,並沿虛線剪出再縫在一起即可! 玻璃門貯物櫃是擺放所有你想藏起的物品的不二之選,但謹記不要放得太滿,因為櫃內印有值得被展示出來的特色潑染圖案! 以實心松木製成的SAuml;LLSKAP貯物長凳和椅子比一個多世紀前的設計較為細小,但仍能完美地讓你貯存各類零碎的物件。設計師Mikael Warnhammar說:「我們希望保留及好好利用於傳統傢具常有的多功能設計特質。」 細小的吊櫃能夠安全及妥善存放你喜愛的物品,好像香料、鎖匙等。 SAuml;LLSKAP掛架配備不同顏色及尺寸,適合置於不同空間,用以掛放各種物件 ndash; 例如刷上傳統圖案的抹布。 手繪碗及餐用小碟能為一頓傳統三餸一湯的晚餐注入一點新意。 根據一些民間傳統,如果湯碗底有一塊四葉草,就會為一起進餐的人帶來好運。這片藏於SAuml;LLSKAP湯碗內的四葉草亦能為晚餐帶來更美好的終結。 天竺葵及四葉草圖案為封面的筆記簿讓你的寫作更稱心如意。 將容易遺失的物件放於鏡子旁,每日當你於鏡子前整理儀容時就不會再忘記你的鎖匙、梳子等小物件 SAuml;LLSKAP平織地氈長而窄,最適合放置於玄關及走廊。 讓四葉草燃亮你的人生。SAuml;LLSKAP燈罩同時適用於吊燈及座檯燈。 在吊鐘形燈罩的柔和光影下享受一頓溫韾的晚餐。 於佈滿天竺葵或潑染圖案的床上休息吧! 有時一件舊物件也可帶來全新的感覺,就像備有多功能的貯物長凳及椅子,適用於所有空間。

【不丹。遊記】不用對自己的能力有太多的顧忌。
走遍世界
原來世界這樣大・2019-01-14

凌晨機一到步後立即展開行程確實用完所有精力。休息過後,展開我們第二天的行程。不丹全民信奉佛教,在行程中不能少的是參觀廟宇的行程。而之前也説過,很多廟宇也因為希望遠離煩囂建於山上,要是想探訪必須徒步上山。 我們花了1.5小時到達山上的Cheri Monastery參觀,在讚嘆著美麗的景色時,電話突然響起。滿是疑惑地接下這個電話:「Hey Nikki. This is Noah 」噢~原來是Host Dad,玩得太忘形,一時想不起自己把不丹的電話號碼都給了他們以方便聯絡,他說:「Howrsquo;s going Where are you right now Anything need to prepare for you」想起以前孤身到美國讀書,他們待我一樣很好,冬天怕我穿不暖,吃飯怕我吃不夠。現在我來到不丹去旅行,他們對我的照顧還是這麼的無微不至。 雖然這次不丹之行跟他們相處只有短短幾天,但我很珍惜跟他們短暫相聚時間。這個世界上有這麼多人,能認識是一種緣份,更何況一起相處、一起生活的。以前我會把自己收起來,覺得與不同語言的人只不過是過客,不會是深交的朋友。覺得畢竟語言上的限制令有些感受怎麼都難以表達出來。 後來接觸得更多人,甚至是不同語言的人後,我才發覺其實別人從來都沒有介意過你英文說得好不好,語法上有沒有錯誤。所以,不用對自己的能力有太多的顧忌,心裡想到什麼就說什麼,哪怕是無關痛癢的無聊事,甚至是爛笑話。不論是哪個國家、說哪種語言的人也是一樣,用心坦誠地交朋友才是最重要的。以前這樣的想法或許是對自己的英文能力缺乏一點信心吧! 掛掉Host dad的來電過後,導遊走過來開玩笑地說著:「我們在山頂,為什麼不叫Host Dad來一部直升機載我們下山?」我說:「是啊~不要緊,接下來幾天我們還要行山,讓我今晚叫Host Dad準備一下!這個任務交給我吧!」 別傻了,在不丹找架直升機載我們並不便宜,這當然只是個玩笑。但你看,不管這是什麼的語言,要是願意把自己心中所想的東西說出來,人與人之間的交流可以更多,打破彼此的隔膜!

【Summer Fashion】清新又舒服的味道,5款夏日香水推介!
生活在我城
Lifemagshopper・2020-08-06

來到夏天,什麼都講求輕薄!香水也不例外,淡淡香氣更能令人心曠神怡。如果你也想要轉換一下味道,就繼續看下去吧!現在就為大家推介5款適合夏天使用的香水。 Aesop Rōzu 馥香水 圖片來源:Aesop Aesop 最深得人心的是它的產品天然無害,味道清新令人放鬆!它最近推出的「Rōzu 馥香水」,多種感覺集於一身。前調是淡淡的玫瑰花香,同時有佛手柑、紫蘇的味道。非常獨特,但又一貫Aesop自然的風格。而後調又有一種檀香、木的味道。中性的氣味,男女都可以使用。 Dior 香氛世家 Holy Peony 圖片來源:Dior Dior的香水一直經典耐聞,而Dior香氛世家就延續「高級訂製香水系列」。多款香氛選擇真是令人難以抗拒!而小編就最喜歡當中的Holy Peony,清新的牡丹花香味,非常有夏季的氣息。 BVLGARI Omnia Crystalline 寶格麗亞洲典藏版晶澈女性淡香水 圖片來源:Bvlgari BVLGARI這款香水味道非常獨特,屬於愈聞愈好聞的類型。雖然不是新款,但是這款香水是小編心中的第一名。什麼場合噴它都很適用,得體大方的氣味。它是水生花香調,前調是比較清新的佛手柑、 香檸、 蜜柑,後調有一種淡淡的木調。值得一試! Coach Floral 芙洛麗女性淡香精 圖片來源:Coach Coach 的這款香水,是充滿活力的味道!它有一種甜甜的花香,前調是柑橘、鳳梨, 中調是茶香玫瑰、雙瓣茉莉等。如果喜歡偏甜的香水,不妨試一試這一款!包裝設計亦非常有巧思,香水寓意代表少女情懷。約會亦非常適合! MONTBLANC萬寶龍 海洋之心女性淡香水 圖片來源:Mont Blanc 這是一款非常有層次的香水,香調屬於花果香。 前調有綠色柑橘、紫蘿蘭葉、白桃、荔枝,後調則是雪松、安息香、麝香。如果不喜歡太甜,但又喜歡花果香,可以試試這一款!是令人換然一新的味道。 更多文章推薦: 【Summer Fashion】女士扮靚必睇!夏季潮流大公開 【Summer Fashion】女士最愛,5間高質平價淘寶飾物店推介! 【Summer Fashion】戴口罩也有好氣色,超強防脫妝底妝!

去旅行都煮飯?去清邁絕對不可錯過的MAMA NOI廚藝學校
走遍世界
Wish? Do!・2018-07-17

大部份澳門人都熱愛旅行,而泰國除了位置鄰近,航班次數非常多,再加上當地物價也非常宜人,自然成為澳門人的熱門旅行城市之一。 每次旅行都一定先Search旅遊景點,而這次的清邁之旅出發前,在網上看到居然有泰國菜全天廚藝班,換算下來才澳門幣200多元,心動不如行動,馬上便預訂了五道料理的全天體驗課程。 預訂好日期,出發當天早上便有專車來到酒店接送我們,首先司機會先帶我們到當地的菜市場,老師簡單介紹做泰國菜的常用料理(老師是擁有流程普通話的泰國人,比我們還流利hellip;),然後再讓我們逛十分鐘。 逛完之後,便會正式到達目的地──MAMA NOI廚藝學校。待人齊後,老師便會每人派發一張菜單,讓我們選擇想要學習的菜式。 雖然一開始選了五個菜式的全天體驗課程,但其實還有一個Special Menu,他會額外教授炸泰卷和泰式奶茶。當選擇好之後,老師就會根據不同的菜單馬上準備好每個人的食材,然後老師會仔細地一步步教我們如何處理不同的食材。 當日學的人大概八個人,所以也不會出現老師分身乏術的情況,在用火的時候也是安全的,老師會像在Rap一樣大喊「FireFireFire」,所以整個氣氛都很輕鬆和有趣,煮出來的東西在精心的指導下也很好吃!(說真的,這樣教也能做得難吃的應該才是天才... 成果圖: 泰式炒河粉,泰式腰果雞 泰式椰奶雞湯(我超愛喝!),冬陰功湯 泰北黃咖喱面(不是講假的,我!超!愛!吃,打算回澳門努力嘗試) 泰式酸辣涼雞,泰式木瓜涼菜 炸春卷 泰式奶菜(雖然真的很好喝,但要加煉奶很甜,如果常常喝應該可以準備XXL的衣服在衣櫃了) 芒果糯米飯,椰奶紅寶石(藍色糯米飯是因為加了蝶豆花一起煮,椰奶紅寶石以前我從未食過,看菜單的時候感覺可能是一個伏...但是一嘗之下!沒有驚為天人但也差不多,比想像中好吃很多,紅色的原來是馬蹄!是會忍不住一直想要再來一口的甜品) 整個課程大概在下午三點多就會結束,大部份料理都是現場煮完馬上就吃,因為當時做出來的料理很多,即使是很很很大食也是吃不完的,最後不得不打包了回酒店一趟,順便休息一下再行出發,如果有興趣去的朋友記得要留意這點。 如果去清邁有閑餘時間的朋友,也很歡迎去試一試廚藝課程,是一個有趣的經歷!

皇都酒店花道葡萄牙餐廳呈獻 夏日心醉雙重奏
澳城餐飲
LifeMag Editor・2016-08-02

一件賞心悅目又美味的甜品,讓人心花怒放,再配上一杯沁涼爽快的雞尾酒,讓您在悠然舒適的環境下,享受微醺放鬆的美妙滋味。澳門皇都酒店花道葡萄牙餐廳FADO推出夏日心‧醉雙重奏,完美配搭葡式創「心」蛋白餅及特色雞尾酒Royal Port amp; Tonic,散發著不能抵擋的「醉」人魅力,讓您一試傾「心」。 蛋白餅是葡國家喻戶曉的傳統甜品,花道主廚Luiacute;s Ameacute;rico別出心裁地將四款葡國口味加入蛋白餅之中,包括蛋黃糖、肉桂焦糖布丁、木糠布丁檸檬酪及砵酒朱古力士多啤梨,製作出色彩鮮艷的蛋白餅,延續葡國的獨特風味。外觀雪白的蛋白餅猶如芭蕾舞衣的裙褶,製作尤其講究,主廚Luiacute;s先巧妙地將蛋白不斷攪拌,讓蛋白鬆軟及充滿空氣,再經烘烤,才能做出入口即融的餅底。 蛋黃糖漿蛋白餅 將葡國蛋黃糖製作成漿,配上蛋白餅,口感柔滑鬆軟,奶味蛋香亦很濃郁,味道甜而不膩,承傳了經典的葡國滋味。 肉桂焦糖布丁蛋白餅 淡淡甜甜的肉桂,有助提升口感的層次,與蛋白餅同時入口,讓您感受到上層焦香的薄脆、夾層軟滑的布丁及肉桂馥郁的香氣,給您帶來一場極緻的味覺享受。 木糠布丁配檸檬酪蛋白餅 木糠布丁是澳門街常見的葡式甜品,以凍忌廉及一層層餅碎製作而成,這款蛋白餅的表層布丁和流心檸檬酪,從內到外都充滿心思,讓您甜入心。 砵酒朱古力配士多啤梨蛋白餅 特別為朱古力迷度身而設,淋上一層砵酒黑朱古力醬,再鋪上酸甜的士多啤梨果粒,嚐一口就能感受幸福滿足的滋味。 在品嚐創「心」蛋白餅的同時小酌一杯,更能讓您沉醉在這甜蜜之中。特色雞尾酒Royal Port amp; Tonic乃是消暑佳品,在檸檬與White Port結合的基礎上,加入了少許橙酒和薄荷葉,讓您從清爽宜人的雞尾酒中發現新驚喜。 夏日心醉雙重奏由即日起至9月30日於花道葡萄牙餐廳供應 客人可自選葡式創「心」蛋白餅系列其中一款 特色雞尾酒Royal Port amp; Tonic,每份優惠價為澳門幣80元(原價為澳門幣120元),另收10%服務費。查詢及訂座,請致電(853)2855 2222,內線142。 更多資訊、優惠及推廣活動,請密切留意澳門皇都酒店Facebook專頁httpswww.facebook.comhotelroyalmo及微信帳號 macauhotelroyal

Spring Boot Web App 更新期間的維護模式:從唯讀到全鎖的解決方案
科技新知
MacauYeah・2025-08-25

在營運 Web App 的時候,雖然我們有 Docker K8s 可以滾動更新,但難保用戶在更新的過程中,有一半訪問去到了舊版,另一半去了新版。如果可以,Web App 本身自帶維護模式,可以自我判斷什麼時候應該忽略新的訪問,當然最好。但要做到這一點,前期需要很多規劃。狠心一點,可以直接關掉對外的服務,讓用戶無法訪問。 但在另一些情況下,例如升級搬遷的情況,下線時間比較長,完全關掉服務並不是一個很好的方向,我們至少還可以提供唯讀的選擇。而且這個可以從資料庫出發,讓 Web App 少處理一點邏輯。 如果 Web App 背後的資料庫是 MSSQL 或 MySQL,唯讀這件事應該是簡單的,只要你把 service account 的權限改變就好。但如果你用Oracle,就要想想辦法。 筆者想到的方法,暫時有兩個。第一個就需要大家寫寫 Script ,一口氣把所有 Table 給鎖起來。例如 第二個,就是生成一個新的唯讀 User schema,給他所有Select的權限。然後更新 Web App 使用那個唯讀 User schema存取資料。 兩個方法有什麼差異呢? 前者就全部鎖起來,沒有任何一個資料庫用戶可以改寫資料。如果你的業務沒有差異性,全部一起封起來就完事。但如果你只想 Web App 轉成唯讀,但其他背景程式還可以執行更新。那你就只能用後者了。但後著也不是百分百的完全無痛,至少你 Web App 要支援登入與操作的 Schema分離。 例如用Spring boot JPA的話,可以在 application.properties 可以讓登入及操作的Schema不一樣。 spring.datasource.username=READ_ONLY_USER spring.jpa.properties.hibernate.default_schema=ORIGINAL_SCHEMA 又或者在 java 層面指定。 @Tableschema = quot;ORIGINAL_SCHEMAquot; 這看上去,是很有彈性的。但其實也是有些局限。如果你本來的JPA有寫特制的 JPQL 或 Raw Query,又或者你在Java層面加了 @Subselect,由於這些都是程式原作者所 hard code 的,JPA沒法幫你改寫。改來改去,可能還是前述寫Script的方法,一口氣把所有 Table 給鎖起來實際一些。 Reference 更多筆者的程式開發分享,見請 github

【澳門限定】Hi-Ten Cake Shop 夢幻曲奇禮盒,3款口味滿足你嘅味蕾!
全球飲食
Cheers!・2025-02-10

週末想對自己好啲?梗係要嘆返杯暖笠笠嘅飲品,加埋香脆嘅曲奇 HiTen Cake Shop嘅手工曲奇禮盒就啱曬你! 高質食材,用心製作,保證新鮮美味,無論自己食定同朋友屋企人分享都一流๑˃̵ᴗ˂̵و 來自香港元朗嘅HiTen Cake Shop凱天餅店,充滿街坊嘅人情味,堅持香港製造,每一塊曲奇都代表住師傅對烘焙嘅用心與熱情,帶嚟對傳統與創新嘅完美結合。 酥脆口感,濃郁香氣,保證新鮮美味,為你帶嚟最地道嘅香港風味! 全新推出三款澳門限定口味,帶嚟獨一無二嘅體驗 牛油蛋白曲奇 頂級牛油同蛋白烘製,輕盈鬆脆,入口即化,奶香在口中慢慢散發,好似初戀咁純粹美好~ 比利時朱古力曲奇 濃郁嘅比利時朱古力,配上酥脆嘅曲奇,帶來豐富的層次感!朱古力控一定試,保證停唔到口! 伯爵咖啡曲奇 一打開禮盒就聞到伯爵茶嘅清香,加上咖啡嘅醇厚,簡直係絕配!口感豐富得嚟又唔膩,一秒置身咖啡廳,最啱同朋友嘆返個悠閒嘅下午茶。 曲奇禮盒 3款口味,每款禮盒30件裝 原價:$158 特價:$138 快啲試下HiTen Cake Shop 曲奇禮盒,品味不一樣嘅香港風味 !無論係自己享受 Me Time定同朋友聚會,呢個禮盒都一樣咁啱! 仲諗緊送咩禮物比家人朋友?快啲試下HiTen Cake Shop 曲奇禮盒,品味不一樣嘅香港風味。 立即前往 HiTen Cake Shop 網站訂購:httpss.ctm.netJAc7m HiTen Cake Shop 曲奇禮盒唔單止係一份禮物,更體現送禮人嘅品味同用心。讓HiTen Cake Shop 曲奇陪你度過溫馨美好嘅時光,讓每一啖都帶畀你滿滿嘅幸福感。唔好錯過屬於呢個季節嘅美味體驗!

測試驅動開發 | 系統邊界Mock
科技新知
MacauYeah・2024-04-23

好一段日子之前,筆者就介紹了一些寫Test Case的大方向 。對於大部份情況來說,有分隔的開發環境,有整個配套,測試起來是順暢的,想做單元測試可以,做整合測試也可以。但如果沒有,我們其實也要想辦法寫Mock。 Mock這個概念,對於寫前端程式的朋友應該比較熟悉,因為前端開發者總不能等後端準備好之後,才開始慢慢設計。前端很早期就要模擬一些情況,做介面設計,做各種思考。而且這個Mock不是指在運行單元測試時,才使用的臨時修改隨機數據。而是針對開發時,自行模擬的後端或外部環境。不過因為前端介面涉及很多主觀設計,很多元素冇辦法做固定的自動測試,所以前端的測試通常要人幫測試。 而後端開發,邊界Mock這一概念也很有用。在外部環境不足的情況下,為自己系統的邊界部份自建一個Stub Dummy 等的模疑數據,是很有幫助的。不論我們對外部環境的掌控度有多少,我們走測試驅動開發(Test Driven Development),好好地定義這個外部環境的期待行為是很重要的。 例如,你有個功能,需要存入數據,但資料庫未準備好,也沒有所謂的In Memory資料庫可以用。這時,自己架空寫一個什麼都不做或回傳固定結果的函數作為中轉接口,然後在你的Test Case可以規劃你的想要結果。 也許你會說,這個函數就是存下資料,我不會需要它的回傳結果,但我們其實還是可以在Test case 中定義一些錯誤檢測,確保這個函數沒有Throw Exception 。再進一步想,我們主程式是否真的不負任何儲存失敗的責任?要定義其他回傳變數,方便寫Log讓追蹤?或者我們至少要知道成功後的Primary Key ?若然業務上真的不在乎儲存結果的有效性,我們不存入數據也是可以的? 所以歸根究底,我們還是在乎儲存的成功與否。還是有必要去驗證驗寫入是否成功。 上述例子,因為資料庫不存在,開發途中可能Test Case 有好長一段時間也通過不了,但至少當資料庫完備後,可以直接驗證,不用人手手工測試。 舉另外一個例子,我們要從某個地方,例如API或資料庫,讀取數據。我們也可以先寫中轉接口,並為它寫Test Case定義應有的行為。雖然明明就只是讀取,我們沒法控制太多。但在接口做好異常狀態處理,是很重要的。例如Handle exception、檢查某些重要業務值會不會是空、確保後續部份可以正常使用,這是因為我們不能被外部系統的失誤而導致自身系統癱瘓。 其實測試驅動,本質上就是強逼大家想多一點,好好定義預期的行為,不論內部條件怎樣變化,都有一自動的檢收標準。