Expand description
§elif-testing - Comprehensive Testing Framework
A powerful testing framework designed specifically for elif.rs applications, providing utilities for database testing, HTTP testing, factory-based test data generation, and seamless integration with standard Rust test runners.
§Features
- Database Testing: Automatic test database management with transactions
- HTTP Testing: Fluent test client with comprehensive assertions
- Factory System: Type-safe test data generation with relationships
- Authentication Testing: Built-in support for JWT and session testing
- Performance Testing: Load testing and benchmarking utilities
- Rust Integration: Seamless integration with
cargo test
§Quick Start
use elif_testing::prelude::*;
#[test]
fn test_utilities() {
// Generate test data
let test_email = utils::random_email();
let test_id = utils::test_uuid();
let timestamp = utils::test_timestamp();
// Use utilities
assert!(test_email.contains("@example.com"));
assert!(!test_id.to_string().is_empty());
assert!(!timestamp.to_rfc3339().is_empty());
}
Re-exports§
pub use database::TestDatabase;
pub use database::DatabaseTransaction;
pub use client::TestClient;
pub use client::TestResponse;
pub use factories::Factory;
pub use factories::FactoryBuilder;
pub use assertions::TestAssertions;
Modules§
- assertions
- Test assertion utilities and helpers
- auth
- Authentication testing utilities
- client
- HTTP testing client and response utilities
- database
- Database testing utilities
- factories
- Factory system for test data generation
- performance
- Performance testing utilities
- prelude
- Prelude module for convenient imports
- utils
- Test utilities and helper functions
Macros§
- assert_
all - assert_
any - assert_
contains - assert_
database_ count - assert_
database_ has - Macro for easy database assertions (would be in a separate macro crate)
- assert_
empty - assert_
in_ range - assert_
json_ contains - assert_
json_ eq - Macros for common assertions
- assert_
length - assert_
matches - assert_
not_ empty - assert_
time_ close