その他の種類のテスト
統合テスト
ライブラリをクライアントとしてテストしたい場合は、統合テストを使用します。
tests/ の下に .rs ファイルを作成します:
// Copyright 2023 Google LLC
// SPDX-License-Identifier: Apache-2.0
// tests/my_library.rs
use my_library::init;
#[test]
fn test_init() {
assert!(init().is_ok());
}
これらのテストからアクセスできるのは、クレートの公開 API のみです。
ドキュメントテスト
Rust にはドキュメントテストのサポートが組み込まれています:
#![allow(unused)] fn main() { // Copyright 2023 Google LLC // SPDX-License-Identifier: Apache-2.0 /// 指定された長さに文字列を短縮します。 /// /// ``` /// # 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 Playground で試してください。