搜尋

搜尋結果

【不丹。遊記】到達不丹第一感覺
走遍世界
原來世界這樣大・2018-03-20

接觸一個新地方,第一印象大多是抵達機場後的感覺。由曼谷開往四、五小時後,飛機正式降落不丹。落機後見到的一望無際的藍天、連綿不斷的山脈,捱夜睡機場的倦意立即消失不見,心中是萬千的興奮。 前方的小屋是機場的入境處,整個Paro International Airport 真是「一眼睇晒」,面積小得實在無法跟香港國際機場相比,但不丹的機場就是擁有這樣的古雅建築風味。從行李帶運送出來的除了是行李外,還有一部又一部的50吋大電視,平日去完日本後在行李帶上總是一箱二箱的手信,這次行李帶上的「手信」是大電視,令我們感到很意外。我們在想:「乜不丹冇電視買㗎咩?做咩個個都帶部電視返不丹做手信? 後來問導遊才知道為了不想資金向外地流走,不丹內是沒有國際品牌的店舖。國民們要是想買品牌旗下產品有兩個方法:一就是空郵到不丹,但要付上很重的税,二就是叫朋友坐飛機來的時候帶回來。相比之下,第二個方法較便宜也較多人用,這也就是在機場看到行李帶上的大電視包裹了。 別説是電子品牌或是衣物服飾的大牌子,就連麥當勞、711便利店等等連鎖店也沒有,只有本地品牌和小店。在不丹,真真正正地可以買到「Made in Bhutan」的貨品。對於拒絕國際品牌在不丹進駐,可以說是封閉,也可以説這是保護人民的方法,令市鎮上的小店持續發展,使經濟可以維持自給自足。

後悔跟他發生關係而且不止一次
玄學星相
熊神進・2018-10-18

從掌相上,我們要留心少女手掌上的感情線和婚姻線之間的ldquo;血處紋rdquo;,每次教學的時候,當筆者把體相上的五大ldquo;邪淫紋rdquo;公開,學生們都低頭臉紅。 三世書對於邪淫有很多大的勸告,一般來說,少女手掌上出現ldquo;血處紋rdquo;, 玄學家會按照八字五行陰陽各星去分析下列情況 1)自願(做好身體及心理準備); 2)不自願(身心都沒有準備); 3)污辱(暴力); 4)生理反應,控制不了自己; 5)半推半就(怕失去男友)。 偶配星是壬酉,酉中藏辛金,男友是卯,卯中藏乙木,我們就要看下去, 看什麼,很簡單,就是看大運, 大運出現ldquo;合星rdquo;, 女性就就會ldquo;半推半就rdquo;的機率。 手掌上的紋並不是一生不變,筆者在印度堪輿日子中,留意很多土生的女性都有ldquo;血處紋rdquo;, 由於專業關係,筆者做了一些統計,發現她們在1719歲三年的求偶欲最強,而身體更出現三處ldquo;邪淫紋rdquo;,在吉普賽體相學有一條守則,凡60%以上概率,我們就要留言提升。 苦主今生犯太歲,她為何不佩帶ldquo;阿彌陀佛化太歲手鏈rdquo;?她在醫院工作,醫院的負能量高,生離死別是常見,她學佛,筆者安心了,她不宜在家裡念地藏經,這是需要的。 ldquo;血處紋rdquo;的女性,要留心自己的心理素質,她很單純,沒有社會經驗,在大流相合,就把自己第一次交給老闆,老闆在這方面很厲害, 滿足了她的生理需要,她連續多次跟已婚渣男睡在一起,最終渣男把她拋棄,筆者不希望她怨懟,反而燒一個ldquo;觀音筒香rdquo;(分手離婚法寶),塵封怨, 怨化灰,大家來生不相遇。 筆者知道她失去方向,內心掙扎現實的殘酷,但收筆前請她安心,她可以佩帶ldquo;幸福小狐仙吊墜rdquo;,2019年是好時年,小狐仙來陪伴她。 命運是掌握在強者手上,並不是決定在玄學家口中,熊老師只是善心提點有緣人,ta應該積極面對人生,而不是消極逃避問題。熊老師已為有緣人關上命盤,並祝福她。 如有任何問題,歡迎聯絡: 林小姐 13726267799晚8時後 或微信13726267799 熊神進:澳門 85366618785 Facebook httpswww.facebook.com熊神進風水法器店MasterMickeyHungFortuneWorkshop252635158482455 中國澳門風水掌相學會會長政府註冊 公共微信 macaumasterxiong 熊神進玄學信箱 httpsgoo.gljAVv8U 淘寶風水法器店:httpmacauhung.taobao.com 今日頭條作者歡迎關注

太陽落獅子座,2018年什麼壞事?
玄學星相
熊神進・2018-01-04

她的金星落在天秤座 ,筆者尷尬說句,她已經有了幾次玄學婚姻,而且性的滿足感旺,她十分享受浪漫的床上活動,有一種似仙女的感覺,但快樂過後,她會很空虛,什至痛恨命運沒有給她幸福。 她的太陽是獅子座 24deg;31'43quot;,筆者很相信她是一位陽光少女,她的異性緣很好,有活力,只因火星在巨蟹座,她的一生跟書無緣,不可能是學霸,更不會在名校畢業,她只是普通工人,過著基層的生活。 她的下巴比較尖,在選工作上,她只能找一些輕鬆的工作,簡單來說,就是收銀員,服務員,而她很想做生意。筆者認為她愛慕虛榮,喜歡打扮,她可以考慮服裝買賣,又或美容行業,由於水星同樣在獅子座,前三十年,她是一事無成, 幸好離婚後,她明白男人不是一棵樹,她不會再依賴男人,自己出來打工,找了一份穩定的工作,可以安定下來,筆者自在了。 她應該明白,她是1994年出生,今年是犯太歲,她不要選2018年結婚,也不要去陰地,她有需要佩帶ldquo;阿彌陀佛守護神法鏈rdquo;,犯太歲不是開玩笑,求個平安好過哭喊一年。 她有一位年長的男友,是外國人,她想美了,她以為那男人是一生一世愛她,給她送幾件禮物就很了不起,她的單純令她蒙受邪淫,她清醒的時候才知道潔身淨心的重要。在未來日子,她會再遇不同的渣男, 大家對她的身體很渴求,祝福。 命運是掌握在強者手上,並不是決定在玄學家口中,熊老師只是善心提點有緣人,ta應該積極面對人生,而不是消極逃避問題。熊老師已為有緣人關上命盤,並祝福她。 如有任何問題,歡迎聯絡: 林小姐 13726267799晚8時後 熊神進:澳門 85366618785 Facebook httpswww.facebook.com熊神進風水法器店MasterMickeyHungFortuneWorkshop252635158482455 中國澳門風水掌相學會會長政府註冊 公共微信 macaumasterxiong 淘寶風水法器店:httpmacauhung.taobao.com 今日頭條作者歡迎關注

【風水師送她法器 ,她不懂珍惜】
玄學星相
熊神進・2017-10-17

她有緣跟一位風水師結緣,風水師贈與一個掛在脖子上的小貔貅給她,一般來說,風水師不是商人,他不會把貔貅樣板放在身上,風水師傅送給她的, 都是很珍貴的法寶,建議信士跪地去接貔貅神。筆者知道她不懂規律,心裡有點不安,因她沒有給貔貅神正確安放,最終神回天了,她,又退回起跑線了。 她的文昌星是伴她一生一世,換句話說,她一生都在讀書,不會休止。她的幸運方位是南方,她先考慮去香港讀書,其次是澳洲,不建議她去美國,因她的色劫是在美國出現,反而貴人在南方等候她。 她有需要更改身分證上的姓名,而英文名可考慮Hilary 她的父母逼她去做一些工資高,社會地位高的醫療教育方面的工作,而她本人非常喜歡媒體。從八字來說,她先考慮醫療教育方面的工作,因屬土, 比較合適。 她的母親有過打胎,是典型殺嬰娘,她有需要燒ldquo;水子地藏香rdquo;,凡婚後殺嬰的婦女,睡不好,常常責備自己沒有做好媽媽的本份,這是種下惡因。ldquo;水子地藏香rdquo;是為已婚婦女減輕業障,也是為孩子安撫,孩子乖乖,不要哭啊! 她的手掌三個山丘飽滿,經濟收入是沒有問題,父母也是有福蔭的人,一家人生活在高層次上。而她的感情線很深,很有力,她會很用心愛一個人, 且這個人初時很愛她,過了一些日子,她把身體交了,才發現,這男人是人渣,有很多次逼女人打胎罪業。 她為何遇上渣男,簡單說,她太重視情欲,當她跟渣男混在一起的時候,她幾乎不想聽任何逆耳的說話。她會把朋友分類,凡是批評她的,都是不會走近,她騰出很多空間時間,就是迷信愛情,接受渣男。說她不知道,錯了,她的感情線比其他線紋深,她是百分百知道,只因她不甘心,她認為自己可以 handle 筆者很理解,大凡感情線亂的女性,內心很多煩惱,只是不願意去說出來,筆者願意聽她心事,願意和她一起同修。請有空到 httpmasterxiong.joinbbs.net 註冊成為會員, 我們都是信佛, 大家一起聊聊。我們在等你, 惜緣。 命運是掌握在強者手上,並不是決定在玄學家口中,熊老師只是善心提點有緣人,ta應該積極面對人生,而不是消極逃避問題。熊老師已為有緣人關上命盤,並祝福她。 如有任何問題,歡迎聯絡: 林小姐 13726267799晚8時後 熊神進:澳門 85366618785 Facebook httpswww.facebook.com熊神進風水法器店MasterMickeyHungFortuneWorkshop252635158482455 中國澳門風水掌相學會會長政府註冊 公共微信 macaumasterxiong 淘寶風水法器店:httpmacauhung.taobao.com 頭條作者

賭場,不是你想像中這樣簡單
玄學星相
熊神進・2017-10-13

他,稱苦主吧,他的學歷不高, 但正財運卻非常好,他中年置業,有車子有房子有妻子有孩子,只缺腦子,如果五子歸位,他是幸福的男人。很可惜,他在七月十四日出生,肚上有一粒大大的痣,他曾經一個人在山區住,吸取了很多陰氣,陰氣又叫負能量,當男人天不怕地不怕,迷信自己可以把鬼神踢走的時候,他最基本是有一些保護自己的力量(例如宗教,法器),很遺憾,他沒有這方面的想法,筆者為此,建議他注意下列三件事: 他找了一座破財屋(今年破財位在南,明年在北),入住後,一年內已失去幾百萬賭款,他發呆了,發瘋了,腦袋發熱,心中想ldquo;翻本rdquo;,眼中都是錢,筆者明白他的焦急,他想給家人安樂,卻犧牲了自己智慧,把血汗錢幾百萬送到澳門賭場,他不是澳門玄學家,他不知道賭場背後是有風水師傅把脈(筆者是澳門風水師,天天在忙,難道一點都不知道個中因由?)人家投資是億元做單位,賭是邪門,是偏門,開賭不信邪,你信嗎?風水差的房子,去賭,是太冒險,他肖猴,今年是雞年,猴屬金,雞屬金,金是忌神,明年是狗年,狗年見天狗,天哭,筆者有點不安,如果沒有占卜失准,明年是苦年,家中有苦事出現。他在大門入口位,擺放十隻吸財象,象牙向門外,這是很重要。 去年他犯太歲,一般來說家庭是共業,他很愛家人,給家人金錢是經濟上的支援,但家人需要的,是經文的回向,是燒香去化業困,他沒有做好。當父離世後,他沒有燒 祖先功德香,他什麼都沒有做,只是埋怨自己命運不好。苦主啊,人來世上就是帶業,佛家說,你種下什麼因,就有什麼果,苦主因無明,沒有給慈父做超度,他欠了父親一場債。筆者希望他痛定思痛,今年開始燒 祖先功德香,這香,是向父親表示歉意,這香是向父親深深感恩。 他跟羊朋友合作做一個工程,他真的要明白,羊屬土,猴屬金,他的一生中有很多貴人,亦有不少誘他去賭的朋友,他可以跟合作夥伴努力把工作做好,2022年,2026年會有貴人再來,幫他脫胎換骨。 他跟女婿關係很一般,而女婿心中對他的行為是有微言,他是知道的,幸好他善良,沒有不安。他下半生走的是旅遊運,他會去很多地方,也會跟朋友去嫖,在此,請原諒筆者收筆前留一言,他會因色中伏,他在夢中已有警兆,只因他不知道。 命運是掌握在強者手上,並不是決定在玄學家口中,熊老師只是善心提點有緣人,ta應該積極面對人生,而不是消極逃避問題。熊老師已為有緣人關上命盤,並祝福她。 如有任何問題,歡迎聯絡: 林小姐 13726267799晚8時後 熊神進:澳門 85366618785 Facebook httpswww.facebook.com熊神進風水法器店MasterMickeyHungFortuneWorkshop252635158482455 中國澳門風水掌相學會會長政府註冊 公共微信 macaumasterxiong 淘寶風水法器店:httpmacauhung.taobao.com 頭條作者

澳門緬甸女傭偷偷廁所產下嬰兒後,竟將嬰兒連胎盤拋棄...
其他
澳門生活圈・2018-12-15

在每一個生命到來的那一刻 還是一個小小胚胎的時候 媽媽已經忍受了10月懷胎的痛苦 才把我們帶到這個世界 在這段將近一年的時間裡 只有真正成為了母親後 才能懂得孕育生命的意義 只可惜 天下並非所有母親都是這樣 接下來的這位母親 做出的行為卻令人大跌眼鏡! 【奇聞異事】 今年3月開始,澳門一名27歲的緬甸女子在東望洋區某單位內任職家傭,由於身型肥胖,這位家傭一直隱瞞僱主自己懷孕的事情。 我的天,這種事情居然能瞞得住,到底是有多胖啊! 本月13號晚上8點,緬甸女傭和僱主夫婦在家裡吃飯的時候,女傭突然說自己肚子痛,要去趟廁所。 然而時間過去很久後,僱主夫婦還沒見到女傭出來,擔心女傭出了什麼事情,於是打開了廁所門。一看!女傭竟然暈倒在地上,身邊淌了大攤血漬和血塊。 僱主夫婦驚慌失措,立刻報警求助,將家傭送往山頂醫院。 曾經,一度有人認為該女傭疑在廁所生產,但事後消防救護員、治安警和司警先後進入該單位救人及調查的時候,都一無所獲。 直到本月14號淩晨,僱主夫婦幫家傭弄好相關手續之後回到家裡清理廁所的時候,女戶主似乎聽到一個微弱的哭聲,往窗外探頭一看,女戶主被眼前的一幕驚呆了! 原來是一名仍連有胎盤的女嬰,身上僅僅裹著1條白色毛巾、被放在1臺冷氣機的隙縫中! 女戶主隨後立即報警,將女嬰送院救治。好在這名新出生的嬰兒在隙縫中吹寒風約8小時,幸好沒有生命危險。 經過調查才知道,原來,緬甸女傭害怕僱主夫婦責備,親手將自己親生的骨肉放到廁所的窗臺冷氣機底下。司警實時跟進案件調查。 小編想說一句 這麼冷的天氣 這名嬰兒居然靠著一條毛巾存活下來 小生命真是超級頑強! 相信以後會大有作為 至於這名親生母親 小編不理解怎麼能下得了如此狠手 哪怕冒著一切的風險 也要保護自己的孩子 這才是身為一個母親的應盡職責啊 讓自己的親身骨肉在寒風中受冷8個小時 換做是你,你會忍心嗎? 素材來源:力報 圖片來源:力報、表情包 版權屬於原作者 編輯撰寫:小嚕

戶外藝術與領事館展覽
文化創意
文創遊樂場 // 米米 Esther Lim・2019-06-18

為期半年的ldquo;藝文薈澳rdquo;(Art Macao)共計41項在48個地點舉行,向世界呈獻一個嶄新的澳門文化旅遊品牌。多件分別由澳門及外地藝術家創作的大型戶外藝術裝置、以及多個外國駐港澳領事館舉辦的展覽陸續在澳展示,讓一眾藝文同好者全天候感受藝術的迷人氛圍。 由本地建築師、設計師及藝術家蘇若翰和孟麗泰設計之臨時竹結構ldquo;聖殿rdquo;現正在大炮台花園展出,此藝術裝置高7米,為來訪者提供靜心歇息的藝術空間;同樣來自本地,由藝術家黃家龍以玻璃纖維製作的24尊ldquo;踱步者rdquo;在龍環葡韻展出。 此外,葡萄牙駐澳門及香港總領事館自5月起舉辦一系列葡國日展覽及活動,帶來多位葡萄牙藝術家的畫展、檔案展、攝影展及珠寶配件展等活動;日本國駐香港總領事館與凸版印刷(香港)有限公司合作,6月19日起在塔石藝文館推出主題為日本文化及表演藝術的ldquo;日本海報設計藝術展rdquo;,意大利駐香港總領事館ldquo;彩色亞洲rdquo;即日起在龍環葡韻匯藝廊展出藝術家弗朗西斯科‧列蒂(Francesco Lietti)以旅行和探索為主題的畫作;比利時駐香港總領事館6月16日起在舊法院大樓呈獻ldquo;盛世rdquo;,由當代藝術組合ldquo;東波西波rdquo;(BenoitBo)以取名為ldquo;大頭娃娃rdquo;的燈籠裝置作品表達世界藝術和人類情感的普遍性;匈牙利駐香港及澳門總領事館亦正在澳門當代藝術中心‧海事工房1號舉辦ldquo;凝視信實――蘇莎.佩維利掛毯作品展rdquo;。 ldquo;藝文薈澳rdquo;手機應用程式已推出,用戶在App Store 和Google Play輸入ldquo;藝文薈澳rdquo;便可搜尋及免費下載。ldquo;藝文薈澳rdquo;大部分活動免費入場,敬請留意網頁www.artmacao.mo、Instagram(IG)專頁ldquo;artmacaordquo;、臉書專頁ldquo;IC Art藝文棧rdquo;及微信專頁ldquo;澳門文化局rdquo;。

Docker 中非管理員用户 Docker non-root user
科技新知
MacauYeah・2025-03-14

Container USER為何重要 在制作Docker Image的過程中,有時會接觸到 USER 這個設定。這事關到最後的 Docker Container內部運行的那個 user 到底會有什麼權限。大家也要知道,Docker Container 其實也只是一個 Linux 上的程序,也就是如果Container內權限過大,也有機會從 Container 內部存取到 Host上的資料。 一般情況下,Docker Image 預設的 USER 就是 root,最基礎的base image都是一樣。而我們想換,其實也相當簡單,就像Linux上起User一樣,只要經指令RUN adduser xxx 或RUN useradd xxx 也可以在 Docker Image 中創建帳號和 home 資料夾,之後就隨時經USER xxx來切換 實際上是不是這麼簡單 如果你將要Container中執行的程序,是一個binary,平常你在Linux中也是以 nonroot 方式執行,那麼是的,就是那麼簡單。例如你執行系統中的java, node, python,原本在Linux中就已經是誰都可以,那麼你的docker container 也應該沒有難度。 但如果原本的安裝包,預設是由system service來啟動,我們就要花點力氣,看看那個service是怎樣呼叫binary的,然後就一步一步模擬它的做法。例如筆者有打包的codeserver,預設是system service啟動,但它也有提共binary的執行方法,安定好home資料夾後,我們也可以手動啟動。 泛生之檔案權限問題 上述binary的情境之所以簡單,是因為大部份情況下,我們都只對於container 內部運行考慮即可,因為預設投產情況下的運作模式,都是隨時起、隨時刪、隨時砍掉重練,只要container內部運作可以自給自足,就可以了。Docker Swarm的運作也是如此,所以它不預期有的持久化資料權限的問題。 而持久化資料權限的問題,其實早在單個Linux伺服器就已經存在。同一個伺服器中,不同process就有不同的UID,當他們需要共同讀寫某些檔案,就會設定多人權限。同理,當多個Container要共同檔案,也是同樣問題。在討論共享檔案之前,我們先看看預設 Docker Storage Mount 會給我們什麼權限。 如果是bind mount,bind mount的權限預設會是Host內的檔案或者資料夾的權限。 如果Host是root,container內是nonroot,container有機會無法讀寫bind mount內的檔案。 留意權限設置就可以解決問題 如果Host是nonroot,但container 內是root,從container內生成的檔案,Host的nonroot user就無法使用。 Host是nonroot的話就一定無解,Host至少有sudo權限,臨時變成管理員,去修正問題。 如果host和container也是nonroot,但UID不夾,其實也不能交換使用。 跟上述一樣,最後要靠sudo來解決問題。 如果host和container也是root,就沒有權限問題,但就有安全性的風險。 如果是volume mount,就還是看看 mount path 是docker image layer中現有的 path還是新起的path 大部份手動建立的named volume都是root 經docker compose起的named volume滿足以下條件的話,將會是nonroot。 docker image 中的已有該path存在。 named volume未存在,docker compose會把對應path的內容在初次建立時抄到named volume 中。 例如ubuntu24.04中的homeubuntu,存在於docker image中,它的擁有者就是UID 1000,我們經docker compose HOME_VOLUMEhomeubuntu,在HOME_VOLUME建立時,就會是UID 1000。但如果是 NOT_EXISTShomeubuntusomethingNotExists,那麼NOT_EXISTS建立時,也會是root 上述討論的Storage mount是集中在單機情況下,使用HOST OS的本地儲存。若現在的場境是多機共享的share storage,就會更麻煩,還要看看那個share storage本身的屬性。例如常見的Linux NFS,其實有指定的權限,跟NFS的Login權限有關,如果你的process本身對檔案權限很敏感,就請先不要挑戰NFS例如postgresql。 Rootless mode Rootless 模式 Rootless 模式指的是在Host中,執行Container的使用者,不需要是管理員,筆者就常用於開發環境中。投產環境中反而沒有聽過這樣的討論,因為投產環境很少可以讓非管理員去執行這麼重要的環境管理。 雖然只是開發環境,但這像前述的bind mount討論中,如果Host是nonroot,但container 內是root,又或是兩者nonroot,但UID不夾,也會出現權限問題。無腦的將host user加入docker group,只可以讓非管理員可以運行docker,但解決不了權限問題。 真正有條件解決的,可能就會向linux subgroup的方式發展。暫時筆者用得比較順的rootless mode,可以無腦用的,不是docker,是podman。有興趣的朋友可以經podman官網看看教學,它給筆者的感覺就像是自動轉換UID。 podman rootless mode 想看更多 筆者已經將過去的文章重新整理成gitbook,有興趣睇更多的讀者,可以來筆者的gitbook再翻一翻 httpsmacauyeah.github.ioAProgrammerPrepares

你開始寫 Spring Boot 測試案例了嗎?
科技新知
MacauYeah・2025-11-29

雖然筆者過往做 spring boot framework 教學中,都有滲入一些測試用例。筆者也曾經困惑了很長一段時間,所以就獨立開一個主題,聊一下筆者在實務上對spring boot test 的理解。 測試案例究竟測試什麼? 測試用例 test case 是確保你的程式碼正確性與穩定性的重要步驟,但在 framework 下,並不是所有功能都很容易寫成測試。所以在討論 framework 測試之前,釐清測試的本質。 function input business logic function output 這意味著我們輸入某些資料(input),然後經過業務邏輯(business logic)的處理,最後產生結果輸出(output)。 我們的測試目標,其實就是確保業務邏輯正確。而我們的手段就是經檢查概定的輸入資料,核對輸出結果。 那麼只要我們可以生成輸入資料,就一定可以檢查輸出結果了吧?其實不是的,因為實務上的輸入和輸出沒有這麼簡單。筆者常接觸到的輸入輸出如下 輸入 function 輸入參數 系統狀態資料,例如:資料庫狀態、外部API結果。 輸出 function 輸出參數 寫入系統(影響到)的資料,例如:資料庫狀態、使用外部API時的輸入參數。 總之就是考慮了狀態機 state machine 的問題,每個狀態外部輸入都是一個測試用例,然後核對狀態機去了下一個什麼狀態。 言下之意,我們就是暴力地生成輸入參數和模擬狀態資料,道理上就是可以進行測試。 Spring boot web framework 中,我們又會測試什麼? function input business logic function output在Spring boot web就變成如下 controller request business logic controller response在 Spring Boot test 中,我們可以用模擬的 MVC MockMvc 測試來驗證 controller 的行為。不過,其實進入 controller 前經過很多系統轉換,而這些道理上跟Framework的技術大相關,與業務邏輯小相關。所以為免折磨自己,可以將業務邏輯單獨封裝成服務(service)。之後直接測試服務 ,易寫也易讀。 controller request service input business logic service output controller response道理上 controller 能做的業務邏輯,服務 service 都可以無腦重現。這樣還可以重用服務,減少測試的數量。 如何實現輸入? 直接 new Object。大部份的情況下,因為業務是自己編寫的,應該都可以直接 new 出來。 經 json 檔讀入。如果輸入的參數量太多,逐個經 java new 是很耗時的,我們可以經 json 反序列化變成 Object。但這亦只限於自己可以操作改寫的類。 Mockito 模擬那些無法簡易經 new 或 json 反序列化的 Object。例如:spring security authentication object 我們在使用時,其實只看到 interface。我們難似自己實現一個可以反序列化的類,那麼我們可以使用 Mockito 來模擬這些資料。一些外部API的結果,我們也可以用使 Mockito 來模擬。 什麼情況下不進行測試? 有些情況下,我們可能選擇不對某些功能進行測試,原因可能包括對功能的了解不足或是單純的懶惰。以下是一些例子: 僅進行配置的Function:如果你的 Function 只是在 Framework 中填寫配置,而且你並不太了解它的運作原理,可能就不需要進行測試了。例如,Spring boot web 中,需要大家配置一個SecurityFilterChain Object,它要求大家將 HttpSecurity 轉換為 SecurityFilterChain 。因為輸入的 HttpSecurity 是系統固定的參數,我們亦沒有檢查它的狀態。這種情況下,它的輸入及輸出,其實我們都沒有真正理解。我們硬測試的話,測試功能可能只流於表面。若我們真的要做測試,也是經過MockMvc進行端到端測試(endtoend testing),測試它在事後的影響範圍。 單純的框架功能:例如資料庫的儲存庫介面(repository interface),雖然是在框架下生成的,對於自己手動調整的部份功能,筆者通常亦不會進行單獨測試,通常都會搭配業務邏輯一起進行。它可以使用 Mockito 進行模擬測試,或用測試環境的真實資料庫進行測試。 面對的挑戰 總括來講,筆者盡可能地把測試用例限定在業務邏輯中,就可以大大地降低寫測試的技術難度。但筆者還是有些問題並未完美解決。 測試用例的數量可能很多,因此共用與維護變得相當困難。逐個用例獨立編寫輸入也是很累的。對於 Mockito 的使用,筆者還是可免則免。因為要逐個功能模擬,編寫量就指數提高,這亦難似配合外部變化。一般來說,能優先使用測試環境或者 Docker 來模擬環境的,就盡量用。 離線開發、離線測試。系統依懶的外部功能越多,想做單機開發的難度就越高。即使前述有 Docker 測試,對於持續整合(CI)來講也是有一定難度。那麼這時,Mockito 就是一個可取的選擇。但這又回到編寫量及難以偵測外部變化問題。 希望這篇文章能幫助你更好地理解測試案例的編寫方向,並在Spring boot web開發中加入你自己的測試!