quality-unit-testing

Quality Unit Testing for Rust

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "quality-unit-testing" with this command: npx skills add d-o-hub/rust-self-learning-memory/d-o-hub-rust-self-learning-memory-quality-unit-testing

Quality Unit Testing for Rust

Write tests that catch real bugs and provide deployment confidence.

Core Principles

Quality over coverage: Tests should catch real bugs, not just boost percentages.

Quick Reference

Naming: test_<function><scenario><expected>

#[test] fn test_process_payment_insufficient_funds_returns_error()

#[tokio::test] async fn test_withdraw_valid_amount_decreases_balance()

AAA Pattern (Arrange-Act-Assert)

#[test] fn test_account_withdraw_decreases_balance() { // Arrange let mut account = Account::new(100);

// Act
let result = account.withdraw(30);

// Assert
assert!(result.is_ok());
assert_eq!(account.balance(), 70);

}

Isolation

✓ Mock: APIs, databases, file systems, external services ✗ Don't mock: Value types, pure functions, code under test

Single Responsibility

Each test verifies ONE behavior with ONE reason to fail.

Rust-Specific Patterns

// Async tests #[tokio::test] async fn test_async_operation() { /* ... */ }

// Result-based tests #[test] fn test_operation() -> anyhow::Result<()> { /* ... */ }

// Test builders let episode = TestEpisodeBuilder::new() .with_task("Test task") .completed(true) .build();

// RAII cleanup struct TestDb(TempDir); impl Drop for TestDb { fn drop(&mut self) { /* auto cleanup */ } }

Success Metrics

✓ Deploy without manual testing ✓ Test failures pinpoint exact problems ✓ Refactoring doesn't break unrelated tests ✓ Tests run in milliseconds

Workflow

Creating Tests:

  • Understand the code behavior

  • Identify risks

  • Write failing test first (red-green-refactor)

  • Apply AAA pattern

  • Isolate dependencies

  • Verify speed (milliseconds)

Reviewing Tests:

  • Run analysis script

  • Check naming conventions

  • Ensure isolation

  • Confirm single responsibility

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

rust-async-testing

No summary provided by upstream source.

Repository SourceNeeds Review
General

build-rust

No summary provided by upstream source.

Repository SourceNeeds Review
General

release-guard

No summary provided by upstream source.

Repository SourceNeeds Review
General

yaml-validator

No summary provided by upstream source.

Repository SourceNeeds Review