他のタイプのテスト

インテグレーションテスト

ライブラリをクライアントとしてテストする場合は、統合テストを使用します。

tests/ の下に .rs ファイルを作成します。

// tests/my_library.rs
use my_library::init;

#[test]
fn test_init() {
    assert!(init().is_ok());
}

これらのテストでは、クレートの公開 API にのみアクセスできます。

ドキュメンテーションテスト

Rust には、ドキュメントのテストに関する機能が組み込まれています。

#![allow(unused)]
fn main() {
/// 指定した長さに文字列を短縮します。
///
/// ```
/// # use playground::shorten_string;
/// assert_eq!(shorten_string("Hello World", 5), "Hello");
/// assert_eq!(shorten_string("Hello World", 20), "Hello World");
/// ```
pub fn shorten_string(s: &str, length: usize) -> &str {
    &s[..std::cmp::min(length, s.len())]
}
}
  • /// コメント内のコードブロックは、自動的に Rust コードとみなされます。
  • コードは cargo test の一環としてコンパイルされ、実行されます。
  • コードに # を追加すると、ドキュメントには表示されなくなりますが、コンパイルと実行は引き続き行われます。
  • Rust プレイグラウンド で上記のコードをテストします。