wae-testing
测试模块 - 提供测试工具和辅助功能。
主要功能
- 测试夹具: 测试数据准备
- Mock 支持: 服务 Mock
- 测试容器: 集成测试容器
- 断言扩展: 丰富的断言方法
技术栈
- 测试框架: Rust 内置测试
- Mock: mockall (可选)
- 容器: testcontainers (可选)
使用示例
use wae_testing::{TestFixture, MockDatabase};
#[TestFixture]
async fn test_user_creation() {
let db = MockDatabase::new().await;
let service = UserService::new(db);
let user = service.create("张三", "zhangsan@example.com").await.unwrap();
assert_eq!(user.username, "张三");
assert!(db.contains_user(&user.id));
}
#[TestFixture]
async fn test_with_real_database() {
let container = TestContainer::postgres().await;
let db = DatabasePool::connect(container.url()).await.unwrap();
let result = db.insert(&test_user).await;
assert!(result.is_ok());
}
Mock 服务
use wae_testing::mocks::{MockHttpClient, MockResponse};
let mock_client = MockHttpClient::new();
mock_client.expect_get("/users")
.returning(|| MockResponse::json(vec![User::default()]));
let users = mock_client.get("/users").await.unwrap();