在 Rust 中使用 Egui 进行单元测试,你可以遵循以下步骤:
在你的 Cargo.toml
文件中,添加 egui
和 eframework
的依赖项:
[dependencies]
egui = "0.18"
eframework = "0.18"
创建一个名为 main.rs
的文件,并编写一个简单的 Egui 应用程序:
use eframe::egui;
fn main() {
let options = eframe::NativeOptions::default();
eframe::run_native(
"My Egui App",
options,
Box::new(|cc| Box::new(MyApp::new(cc))),
);
}
struct MyApp {
value: f32,
}
impl MyApp {
fn new(_cc: &eframe::CreationContext<'_>) -> Self {
MyApp { value: 0.0 }
}
}
impl eframe::App for MyApp {
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
egui::CentralPanel::default().show(ctx, |ui| {
ui.heading("Hello, Egui!");
ui.add(egui::Slider::new(&mut self.value, 0.0..=10.0).text("Value"));
});
}
}
创建一个名为 main_test.rs
的文件,并编写一个单元测试:
use eframe::egui;
use my_egui_app::{MyApp, MyAppState};
use test::Bencher;
#[cfg(test)]
mod tests {
use super::*;
#[bench]
fn bench_update(b: &mut Bencher) {
let options = eframe::NativeOptions::default();
let mut app = MyApp::new(&options);
let ctx = eframe::Context::new(&options);
b.iter(|| {
app.update(&ctx, &mut eframe::Frame::default());
});
}
}
在这个例子中,我们使用了 test
模块中的 Bencher
来进行基准测试。你可以根据需要编写其他类型的单元测试。
在终端中,进入你的项目目录并运行以下命令来执行单元测试:
cargo test
这将运行你的单元测试并显示结果。
注意:在上面的示例中,我假设你的项目名为 my_egui_app
。请根据你的项目名称进行相应的调整。