他のタイプのテスト
インテグレーションテスト
ライブラリをクライアントとしてテストする場合は、統合テストを使用します。
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 プレイグラウンド で上記のコードをテストします。