Elmトラックでのテスト

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


Elmプロジェクトのテストは、そのプロジェクトのtests/サブディレクトリにあります。各演習のテストスイートは、その演習のルートディレクトリから実行できます。

$ cd ~/exercism/elm/hello-world
$ elm-test

変更を監視する

変更を保存すると、テストが自動的に再実行されます:

$ elm-test --watch

テスト駆動開発の流れ

ほとんどの演習では、テストはtests/Tests.elmファイルにすでに書かれています。src/<exercise>.elmファイルに必要なコードを書いて、テストに通るようにすることが目標です。まず最初に失敗するテストに注目して、それを修正します。次に、テストファイルにある次のskip <|の部分を削除するかコメントアウトして、すべてのテストが通るまで繰り返します。

行き詰まったら

まずは、Debug.todoが入っていてもいいので、コードがコンパイルできる状態を目指しましょう。何かをどうやればいいかわからないときは、その部分を未実装の関数として切り出すとよいことがよくあります。

complexOperationOnMultipleStrings : List String -> List String
complexOperationOnMultipleStrings allStrings =
    List.map complexOperation allStrings


complexOperation : String -> String
complexOperation input =
    Debug.todo "Extracted operation into its own function"

切り出した関数に型注釈を付けると、考えを整理しやすくなるだけでなく、コンパイラーがより良いエラーメッセージを出してくれるようにもなります。

コードを整える

コードを提出する前に、elm-formatを実行してみることを検討しましょう。テキストエディターで保存時に自動フォーマットするように設定するのもよいでしょう。