再一次熱血 - RubyKaigi 2023
這幾年因為疫情的關係,大家都有不少生活上的改變,也因此我有四年沒有辦法親自到日本參加 RubyKaigi 這個對 Ruby 工程師來說最盛大的研討會。
終於在今年,我到日本重新感受了一次 Ruby 社群的活力。
這幾年因為疫情的關係,大家都有不少生活上的改變,也因此我有四年沒有辦法親自到日本參加 RubyKaigi 這個對 Ruby 工程師來說最盛大的研討會。
終於在今年,我到日本重新感受了一次 Ruby 社群的活力。
雖然我們沒有使用依賴注入的技巧,或者實作中有耦合的問題存在,在 Ruby 中因為語言特性的關係,我們還是有非常多方式可以進行測試,然而這也會讓我們的測試變得複雜。
在這系列的文章中,我們已經對使用 RSpec 進行測試的技巧有一定的理解,接下來我們來討論一下「可測試性」這件事情。
最近在準備明年(2024)的連載主題,在實作的時候意外發現自己逐漸習慣「不使用瀏覽器」的狀況下去進行開發,除了比較常用的後端情境之外,連前端也很順利的可以實踐這件事情。
在撰寫 RSpec 的過程中,我們大多會使用 expect
(預期)搭配 receive
(接收)來驗證某個方法有被呼叫,然而這會讓我們需要將「預期」寫在實際的行為之前,在驗證的邏輯上似乎有點奇怪,因此我們可以用 Spy 功能替代,在呼叫實際的方法後再去驗證行為。
我們已經瞭解到該如何利用 Allow 來改變一個物件的回傳,然而在我們使用 Allow 的時候還可能會遇到需要呼叫多次、搭配 Block 使用的情況,在這樣的狀況下該如何處理呢?
最近跟朋友們到宜蘭玩(宅)了幾天,我們這群學多媒體的朋友們也有少數幾人選擇了軟體工程師的職業,因此就聊到我目前的工作。剛好 IxDA 也有一場活動聊到 UX Designer 的職涯,以及最近跟五倍紅寶石教育機構合作一場晉升資深工程師的直播,都很適合寫篇文章討論。
在 RSpec 的測試中,我們最常會使用到的是 Allow 來改變一個物件的回傳,基本上在需要使用測試替身(Test Double)的地方,就會使用用到。
最近在社群網站寫到「容器數量越來越多,該從 Docker Swarm 轉換到 Nomad 上」的訊息,然後就被問到這幾年來只要是這類問題,畢竟會被問的「為什麼不用 Kubernetes?」的問題。
在測試中,我們經常會看到 Mock 和 Stub 這兩個詞,很多時候也不容易區分清楚。在 RSpec 中我們基本上不會看到 Mock 或者 Stub 這兩個詞,取而代之的是 Double 和 Allow。