在 MoonScript 軌道上測試

了解如何在 Exercism 上測試你的 MoonScript 練習。


MoonScript 軌道的測試方式,就跟在 Lua 軌道上測試完全一樣。 在練習目錄中,輸入:

$ busted

待處理的測試

這個軌道遵循 Exercism 的測試驅動開發方法。 你會拿到一份完整的測試套件,但只有第一個測試是「啟用」狀態。

要啟用測試,請把測試的指令從pending改成it。

如果你喜歡一直執行所有測試,可以用命令列工具一次把它們全部改掉。 底下是用 perl 做的範例(幾乎每個地方都裝了 perl):

$ perl -i -pe 's/^\s+\Kpending\b/it/' two_fer_spec.moon

當你在線上編輯器裡工作時,測試執行器會自動執行所有測試。

使用 LuaRocks

Lua 本身是一門非常小的語言。 LuaRocks 是 Lua 模組的套件管理器。

你可以在自己的解法中自由使用任何模組,但不是所有模組都能在線上測試執行器中使用。 測試執行器提供以下這些:

已可作為 busted 的相依套件使用

  • penlight (home)

    Penlight 是一組純 Lua 函式庫,讓你更容易處理遍歷目錄、讀取設定檔這類常見工作。它提供了資料表與序列的函式式操作。

  • dkjson (home)

    dkjson 是一個用來編碼與解碼 JSON 資料的模組。

已可作為 MoonScript 的相依套件使用

  • LPeg (home)

    LPeg 是一個為 Lua 打造的新式模式比對函式庫,以剖析表達式文法(PEG)為基礎。

  • LuaFileSystem (home)

    LuaFileSystem 提供可攜的方式來存取底層的目錄結構與檔案屬性。

日期與時間

  • date (github)

    日期與時間字串的剖析;時間的加法與減法;時間區間計算;支援 ISO 8601 日期。

  • lua-tz (github)

    Lua TZ 提供支援時區的日期與時間函式。核心函式的介面類似標準函式 os.date 與 os.time,但額外接受時區引數。

  • luatz (github)

    用來處理時間與日期的 Lua 函式庫。