ユニットテスト
Rust と Cargo には、シンプルな単体テスト フレームワークが付属しています。
-
単体テストはコードのあらゆる場所に記述可能です。
-
統合テストは
tests/
ディレクトリ内に記述します。
テストには #[test]
のマークが付きます。多くの場合、単体テストは通常ネストされたtests
モジュールに配置され、#[cfg(test)]
によりテストのビルド時にのみコンパイルされるようになります。
fn first_word(text: &str) -> &str {
match text.find(' ') {
Some(idx) => &text[..idx],
None => &text,
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_empty() {
assert_eq!(first_word(""), "");
}
#[test]
fn test_single_word() {
assert_eq!(first_word("Hello"), "Hello");
}
#[test]
fn test_multiple_words() {
assert_eq!(first_word("Hello World"), "Hello");
}
}
- これにより、プライベート ヘルパーの単体テストを行えます。
#[cfg(test)]
属性が付与されたコードはcargo test
の実行時にのみ有効になります。
This slide should take about 5 minutes.
結果を表示するには、プレイグラウンドでテストを実行します。