Rustトラックでのテスト

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


コードはsrc/lib.rsに書きます。 演習にはsrc/lib.rsにスタブファイルが用意されていて、これから書く必要のあるコードのシグネチャを確認できます。

ほとんどの演習では、コードはすべてsrc/lib.rsというファイルに書くのがよいでしょう。 解答を複数のファイルに分けたい場合は、Rustの本のモジュールの章を参照してください。

テストを実行する

テストを実行するには、次のコマンドを実行するだけです。

$ cargo test

デフォルトでは、最初のテストだけが有効になっています。 次のテストに合格する準備ができたら、次のテストからignoreフラグ(#[ignore])を外します。 好みに応じて、すべてのテストから一度にフラグを外してもかまいません。

テストに合格するために、できるだけ少ないコードを書いてかまいません。 テストの失敗が、次に何を書くべきかを教えてくれます。

Rustはコンパイル時にすべてのコードをチェックするので、必要なコードを書くまでテストがコンパイルできないことがあります。 ignoreされたテストもコンパイル時にチェックされます。 コンパイルできないテストは、各行の先頭に//を付けてコメントアウトできます。 そして、そのテストに取り組む準備ができたら、コメントを外します。 Rustにはtodo!()という特別なマクロもあり、未完成のコードパスに使うとプログラムをコンパイルできるようにできます。

ライブラリを使う

ほとんどの演習は、外部ライブラリを使わずに解けるはずです。 それでも、演習のディレクトリでcargo add crate-nameを実行すれば、ライブラリ(Rustコミュニティではクレートと呼びます)を追加できます。

ウェブサイト上の自動テストが対応しているのは、あらかじめ決められたクレートのセットだけです。その一覧はこちらの[dependencies]セクションにあります。 特定のクレートのサポートを追加してほしい場合は、気軽にissueやpull requestを送ってください。