pub struct TestEnv { /* private fields */ }Expand description
测试环境管理器
提供完整的测试生命周期管理,支持同步和异步钩子函数,多服务集成测试,以及容器化测试环境。
Implementations§
Source§impl TestEnv
impl TestEnv
Sourcepub fn new(config: TestEnvConfig) -> Self
pub fn new(config: TestEnvConfig) -> Self
创建新的测试环境
§Examples
use wae_testing::{TestEnv, TestEnvConfig};
let config = TestEnvConfig::default();
let env = TestEnv::new(config);Sourcepub fn default_env() -> Self
pub fn default_env() -> Self
Sourcepub fn setup(&self) -> TestingResult<()>
pub fn setup(&self) -> TestingResult<()>
Sourcepub async fn setup_async(&self) -> TestingResult<()>
pub async fn setup_async(&self) -> TestingResult<()>
Sourcepub fn teardown(&self) -> TestingResult<()>
pub fn teardown(&self) -> TestingResult<()>
Sourcepub async fn teardown_async(&self) -> TestingResult<()>
pub async fn teardown_async(&self) -> TestingResult<()>
Sourcepub fn state(&self) -> TestEnvState
pub fn state(&self) -> TestEnvState
获取环境状态
§Examples
use wae_testing::{TestEnv, TestEnvState};
let env = TestEnv::default_env();
assert_eq!(env.state(), TestEnvState::Uninitialized);Sourcepub fn initialized_elapsed(&self) -> Option<Duration>
pub fn initialized_elapsed(&self) -> Option<Duration>
获取环境初始化后运行的时间
如果环境尚未初始化,返回 None。
Sourcepub fn add_lifecycle_hook<H>(&self, hook: H)where
H: TestLifecycleHook + 'static,
pub fn add_lifecycle_hook<H>(&self, hook: H)where
H: TestLifecycleHook + 'static,
注册同步生命周期钩子
添加一个同步钩子函数,在测试环境的各个生命周期阶段执行。
§Examples
use wae_testing::TestEnv;
struct MyHook;
impl wae_testing::TestLifecycleHook for MyHook {
fn after_setup(&self, _env: &TestEnv) -> wae_testing::TestingResult<()> {
println!("Environment setup complete!");
Ok(())
}
}
let env = TestEnv::default_env();
env.add_lifecycle_hook(MyHook);Sourcepub fn add_async_lifecycle_hook<H>(&self, hook: H)where
H: AsyncTestLifecycleHook + 'static,
pub fn add_async_lifecycle_hook<H>(&self, hook: H)where
H: AsyncTestLifecycleHook + 'static,
注册异步生命周期钩子
添加一个异步钩子函数,在测试环境的各个生命周期阶段异步执行。
Sourcepub fn on_cleanup<F>(&self, handler: F)
pub fn on_cleanup<F>(&self, handler: F)
注册清理函数
添加一个同步清理函数,在测试环境清理时执行。清理函数按注册的逆序执行。
§Examples
use wae_testing::TestEnv;
let env = TestEnv::default_env();
env.on_cleanup(|| println!("Cleaning up!"));Sourcepub fn on_cleanup_async<F, Fut>(&self, handler: F)
pub fn on_cleanup_async<F, Fut>(&self, handler: F)
注册异步清理函数
添加一个异步清理函数,在测试环境清理时异步执行。
Sourcepub fn set<T: 'static + Send + Sync>(&self, key: &str, value: T)
pub fn set<T: 'static + Send + Sync>(&self, key: &str, value: T)
存储数据
在测试环境中存储任意类型的数据。
§Examples
use wae_testing::TestEnv;
let env = TestEnv::default_env();
env.set("test_key", "test_value");Sourcepub fn get<T: 'static + Clone>(&self, key: &str) -> Option<T>
pub fn get<T: 'static + Clone>(&self, key: &str) -> Option<T>
获取数据
从测试环境中获取之前存储的数据。
§Examples
use wae_testing::TestEnv;
let env = TestEnv::default_env();
env.set("test_key", "test_value".to_string());
let value: Option<String> = env.get("test_key");
assert_eq!(value, Some("test_value".to_string()));Sourcepub fn config(&self) -> &TestEnvConfig
pub fn config(&self) -> &TestEnvConfig
获取配置
§Examples
use wae_testing::TestEnv;
let env = TestEnv::default_env();
let config = env.config();
assert_eq!(config.name, "test");Sourcepub fn add_service(&self, service_config: TestServiceConfig)
pub fn add_service(&self, service_config: TestServiceConfig)
添加测试服务配置
向测试环境中添加一个服务配置,用于多服务集成测试。
Sourcepub fn get_service(&self, name: &str) -> Option<TestServiceConfig>
pub fn get_service(&self, name: &str) -> Option<TestServiceConfig>
获取测试服务配置
根据服务名称获取服务配置。
Sourcepub fn enabled_services(&self) -> Vec<TestServiceConfig>
pub fn enabled_services(&self) -> Vec<TestServiceConfig>
获取所有启用的服务
返回所有已启用的服务配置列表。
Sourcepub async fn with_fixture<F, R>(&self, fixture: F) -> TestingResult<R>where
F: FnOnce() -> TestingResult<R>,
pub async fn with_fixture<F, R>(&self, fixture: F) -> TestingResult<R>where
F: FnOnce() -> TestingResult<R>,
Sourcepub async fn run_test<F, Fut>(&self, test: F) -> TestingResult<()>
pub async fn run_test<F, Fut>(&self, test: F) -> TestingResult<()>
Sourcepub async fn run_test_async<F, Fut>(&self, test: F) -> TestingResult<()>
pub async fn run_test_async<F, Fut>(&self, test: F) -> TestingResult<()>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TestEnv
impl !RefUnwindSafe for TestEnv
impl Send for TestEnv
impl Sync for TestEnv
impl Unpin for TestEnv
impl UnsafeUnpin for TestEnv
impl !UnwindSafe for TestEnv
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more