Rustのテストコード
Rustのユニットテストの書き方を調べたので少しだけですがメモを残します。
RustのビルドツールCargoには、標準でユニットテストを実行する方法が用意されています。
決められた記述でユニットテストコードを簡単に追加できます。
この記事で使っているRustのバージョンは、1.47.0
です。
nnnamani/rust_unittest_sampleにサンプルコードを書いてみました。
テストコードの書き方
以下の条件を満たすことで、ユニットテストコードを実行できます。
#[cfg(test)]
属性をつけたtests
モジュールを定義し、その中にテスト関数を書く
- テスト関数には、
#[test]
属性をつける
テストコードは、実装のコードと同じファイル内に書くことができます。
テスト関数内でpanic
が発生するとテストがFAILED
になります。
テストのために、以下のヘルパーマクロが用意されています。
- assert!(expression)
expression
の評価結果がfalseの場合、panicを発生させ、テストをFAILEDにします。
- assert_eq!(left, right)
left
とright
が一致しない場合は、panicを発生させ、テストをFAILEDにします。
- assert_ne!(left, right)
left
とright
が一致する場合は、panicを発生させ、テストをFAILEDにします。
以下は、サンプルコードのsrc/lib.rsに書いたテストコードです。
テストの実行方法
cargo test
コマンドを使ってユニットテストを実行できます。
まとめ
Rustでのユニットテストの書き方を調べてみました。
Cargoを使ってできるテストには、他に統合テストもあったり、また、ドキュメント内にテストコードを書くことができる機能もあるようなので、今度調べてみたいと思います。