← スキル一覧に戻る

rust-testing
by pluginagentmarketplace
Rust programming language roadmap plugin for Claude
⭐ 1🍴 0📅 2026年1月5日
SKILL.md
name: rust-testing description: Master Rust testing - unit tests, integration tests, mocking, and TDD sasmp_version: "1.3.0" bonded_agent: rust-tooling-agent bond_type: SECONDARY_BOND version: "1.0.0"
Rust Testing Skill
Master comprehensive testing in Rust: unit tests, integration tests, doc tests, property testing, and mocking.
Quick Start
Unit Tests
pub fn add(a: i32, b: i32) -> i32 {
a + b
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_add_positive() {
assert_eq!(add(2, 3), 5);
}
#[test]
fn test_add_negative() {
assert_eq!(add(-1, -1), -2);
}
#[test]
#[should_panic(expected = "overflow")]
fn test_overflow() {
panic!("overflow");
}
#[test]
#[ignore]
fn expensive_test() {
// Run with: cargo test -- --ignored
}
}
Integration Tests
// tests/integration_test.rs
use my_crate::public_api;
#[test]
fn test_full_workflow() {
let result = public_api::process("input");
assert!(result.is_ok());
}
mod common; // tests/common/mod.rs
#[test]
fn test_with_setup() {
let ctx = common::setup();
// test...
}
Doc Tests
/// Adds two numbers.
///
/// # Examples
///
/// ```
/// let result = my_lib::add(2, 2);
/// assert_eq!(result, 4);
/// ```
pub fn add(a: i32, b: i32) -> i32 {
a + b
}
Test Commands
cargo test # All tests
cargo test test_name # Specific test
cargo test -- --nocapture # Show output
cargo test -- --ignored # Ignored tests
cargo test --doc # Doc tests only
cargo nextest run # Fast parallel
Common Patterns
Async Tests
#[tokio::test]
async fn test_async_operation() {
let result = async_function().await;
assert!(result.is_ok());
}
Property Testing
use proptest::prelude::*;
proptest! {
#[test]
fn test_commutative(a in 0i32..1000, b in 0i32..1000) {
assert_eq!(add(a, b), add(b, a));
}
}
Mocking
use mockall::automock;
#[automock]
trait Database {
fn get(&self, id: u32) -> Option<String>;
}
#[test]
fn test_with_mock() {
let mut mock = MockDatabase::new();
mock.expect_get()
.returning(|_| Some("data".to_string()));
}
Troubleshooting
| Problem | Solution |
|---|---|
| Test not found | Check module path |
| Async fails | Add #[tokio::test] |
| Random failures | Use --test-threads=1 |
Resources
スコア
総合スコア
60/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です