Skip to main content

wae_testing/
lib.rs

1//! WAE Testing - 测试支持模块
2//!
3//! 提供统一的测试工具集,包含 Mock 工具、断言扩展、数据生成器和测试环境管理。
4//!
5//! 深度融合 tokio 运行时,支持异步测试场景。
6//! 微服务架构友好,提供完整的测试基础设施。
7
8#![warn(missing_docs)]
9
10mod assertions;
11mod containers;
12mod db_mock;
13mod environment;
14mod fixture;
15mod http_client;
16mod mock;
17mod service_mock;
18
19#[cfg(any(feature = "bench", feature = "load-test"))]
20mod benchmark;
21
22#[cfg(any(feature = "bench", feature = "load-test"))]
23mod load_test;
24
25#[cfg(feature = "fuzz")]
26mod fuzz;
27
28#[cfg(feature = "pact")]
29mod contract;
30
31pub use assertions::{AsyncAssert, assert_eventually, assert_json_contains, assert_matches_regex};
32
33pub use environment::{
34    AsyncTestLifecycleHook, TestEnv, TestEnvBuilder, TestEnvConfig, TestEnvState, TestLifecycleHook, TestServiceConfig,
35    create_test_env, create_test_env_with_config,
36};
37
38pub use fixture::{
39    Fixture, FixtureBuilder, FixtureGenerator, RandomBool, RandomChoice, RandomDateTime, RandomEmail, RandomNumber,
40    RandomString, RandomUuid,
41};
42
43pub use mock::{AsyncMock, Mock, MockBuilder, MockCall, MockExpectation, MockFn, MockResult, verify, verify_async};
44
45#[cfg(feature = "mockall")]
46pub use mock::{automock, mock, mockall, predicate, sequence};
47
48pub use http_client::{RequestBuilder, TestClient, TestResponse};
49
50pub use db_mock::{DatabaseExpectation, DatabaseQuery, DatabaseResult, MockDatabase, MockDatabaseBuilder};
51
52pub use service_mock::{
53    MockExternalService, MockExternalServiceBuilder, ServiceExpectation, ServiceMatchRule, ServiceRequest, ServiceResponse,
54    ServiceResponseConfig,
55};
56
57#[cfg(feature = "containers")]
58pub use containers::{
59    MySqlContainer, MySqlImage, PostgresContainer, PostgresImage, RedisContainer, RedisImage, TestContainer,
60    is_docker_available,
61};
62
63pub use wae_types::{WaeError, WaeErrorKind, WaeResult as TestingResult};
64
65#[cfg(any(feature = "bench", feature = "load-test"))]
66pub use benchmark::{BenchmarkConfig, PerformanceStats, SimpleTimer};
67
68#[cfg(any(feature = "bench", feature = "load-test"))]
69pub use load_test::{LatencyStats, LoadTestConfig, LoadTestResult, RequestResult, SyncLoadTester};
70
71#[cfg(feature = "fuzz")]
72pub use fuzz::{Arbitrary, SafeArbitrary, SafeEmail, SafeHttpStatus, SafeUuid, Unstructured};
73
74#[cfg(feature = "pact")]
75pub use contract::*;