MoonScriptトラックでのテスト

ExercismでMoonScriptの演習をテストする方法を学びます。


MoonScriptトラックでのテストは、Luaトラックでのテストとまったく同じです。 演習のディレクトリで、次のように入力します:

$ busted

保留中のテスト

このトラックは、Exercismのテスト駆動開発という方法に沿って進められています。 テストスイートはすべて用意されていますが、最初のテストだけが「有効」になっています。

テストを有効にするには、テストのコマンドをpendingからitに変えます。

いつもすべてのテストを実行していたいという人は、コマンドラインツールを使えば一度にまとめて変更できます。 perl(ほとんどどこにでもインストールされています)を使った例を挙げます:

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

オンラインエディターで作業しているときは、テストランナーが自動的にすべてのテストを実行します。

LuaRocksを使う

Lua自体は、とても小さなプログラミング言語です。 LuaRocksは、Luaのモジュールのパッケージマネージャーです。

解答ではどのモジュールでも自由に使えますが、そのすべてがオンラインのテストランナーで使えるわけではありません。 テストランナーでは、次のものが使えます:

bustedの依存関係としてすでに利用できます

  • penlight (ホーム)

    Penlightは、ディレクトリの走査や設定ファイルの読み込みといった、よくある作業を簡単にするための純粋なLuaライブラリのセットです。テーブルやシーケンスに対する関数型の操作を提供します。

  • dkjson (ホーム)

    dkjsonは、JSONデータをエンコードおよびデコードするためのモジュールです。

MoonScriptの依存関係としてすでに利用できます

  • LPeg (ホーム)

    LPegは、Parsing Expression Grammars(PEGs)に基づいた、Lua用の新しいパターンマッチングライブラリです。

  • LuaFileSystem (ホーム)

    LuaFileSystemは、基盤となるディレクトリ構造とファイルの属性にアクセスするための、移植性の高い方法を提供します。

日時

  • date (github)

    日付と時刻の文字列のパース、時刻の加算と減算、期間の計算、ISO 8601形式の日付への対応。

  • lua-tz (github)

    Lua TZは、タイムゾーンをサポートした日付と時刻の関数を提供します。中核となる関数は、標準関数のos.dateやos.timeと似たインターフェースを持ちますが、さらにタイムゾーンの引数を受け取ります。

  • luatz (github)

    時刻と日付を操作するためのLuaライブラリです。