測試的一小步 專案的一大步

本文僅獻給那些從來不寫測試的同學們。

我們都知道測試的重要性,教材也都鼓勵我們重視測試,追求測試覆蓋率,可是其實你知道、我知道、獨眼龍也知道,測試根本就沒有寫,東西看起來會動就好。(?!)

根據某些祖傳的統計數據,測試的程式碼平均會是其它程式碼的六倍,在資源(沒錢、沒人)與死線(沒時間)的雙重壓力下,也難怪測試始終寫不下去,因此本文只會請同學大大寫一個測試,真的一個就好。

一個測試

# test/system/home_page_test.rb

class HomePageTest < ApplicationSystemTestCase
  test "show homepage" do
    visit "/"
    assert_text "Text on your homepage"
  end
end

跑一下:

> bundle exec rails test:system

這樣簡單的把首頁打開的測試,背後代表的意義是:

  1. 專案的首頁被瀏覽器打開了。
  2. 因而專案必須真的跑起來好讓瀏覽器訪問。
  3. 你寫下了第一條測試,而且應該是成功的,好棒棒,給自己掌聲鼓勵。

這只是測試的一小步,卻是專案的一大步。

忘掉上面六倍的恐怖數字吧!藉由這一個微小但確切的測試,看著它 pass 有沒有感到一絲絲的小確幸呢?

如果有的話(灑花轉圈圈),來寫下一個測試吧,可以是測試註冊帳號,也可以是測試登入,測試是一種累積,看到它們 pass 的那種安心感是難以言喻的,從此不用再提心吊膽、偷偷摸摸交付給客戶,測試是我們的好朋友,也是工程師的浪漫~。

本文改寫自〈Write One Test〉。