IT 邦鐵人賽 Day 13 RSpec 語法 subject method
寫程式寫到後來發現,最難的其實是「取名」,要取個一眼就知道這是在幹麻的變數名稱,實在是門藝術,像我這種思維方正又收斂的人,取名真的是一大困難,貼心如 RSpec 也聽到了大家的困擾,給大家一個不用取名的方法:
寫程式寫到後來發現,最難的其實是「取名」,要取個一眼就知道這是在幹麻的變數名稱,實在是門藝術,像我這種思維方正又收斂的人,取名真的是一大困難,貼心如 RSpec 也聽到了大家的困擾,給大家一個不用取名的方法:
昨天介紹了 hook ,其中的 before hook 是為了不要一直做重複的事情,但這樣會造成每個 examples 都會執行,不論 examples 有沒有需要,這樣似乎有點浪費(客家精神發作),今天介紹的 let 是更方便更好用的方法。
在前一篇,我們介紹了 RSpec 裡基礎的語法,今天我們來介紹很好用很常用的語法:before hook, after hook。
當我們需要重複測試同一個物件的不同屬性或方法時:
前面介紹了 RSpec 的規格與測試,讓大家都能明白 TDD 的測試流程,紅燈、綠燈、優化與重構。接下來,我們會花好幾篇來介紹 RSpec 的 語法。
今天我們先來個簡單的,也是前面看過的基本語法:
不知道大家有沒有先試著自己做做看,然後自己測測看。其實可以自己玩玩看 rspec 指令所產出來的訊息,學習判斷訊息內容也是很重要的訓練,不只在測試,在任何只要是寫code的時候,都會執行出錯誤,隨之產生的錯誤訊息會告訴你錯的地方,有些甚至會說如何處理這項錯誤。
現在,我們已經開始進入寫測試 code 的階段了。今天要做的是在 Rspec 的規格裡,補上要測試的 code,那我們先從第一個規格描述 it 著手吧!也就是 it “軟體錢包原本有50元,扣款10元後,錢包顯示40元”
昨天我們在終端機上執行了指令,進行我們一直提到的「測試」。沒錯,在終端機上操作的指令與出現的訊息就是我們測試執行與結果。
接下來,我們就是要寫 code,測試,沒過,修改,寫 code,測試,一步一步循環到通過為止(但其實通過測試不能算是終點,因為要進行程式碼的優化與重構)。
在前天講了TDD的概念與流程,昨天也安裝好Ruby語言跟RSpec測試框架,接下來要開始慢慢帶入測試的模樣,讓我們來看看測試流程到底長什麼樣子,測試到底是在測什麼,要寫什麼code。先別急,我們今天先講個測試之前需要的「規格」。
昨天解說了什麼是 TDD、TDD 的流程與原則 ,今天我們要先來安裝之後 TDD 實際測試示範時需要的 Ruby 跟 RSpec 框架。
首先我們到 Ruby Version Manager (RVM)
並複製紅匡的code,到終端機貼上並執行來下載RVM,Ruby版本管理套件
測試的偉大在於,當產品規模龐大時,在進行任何的系統優化、新增功能並確保原功能不被影響,這就是倚賴自動化測試。
前面花了三天的時間在說明測試的觀念與概念,接下來要介紹的是 TDD、Test-Driven Development、測試驅動開發。