我正在创建一个函数,它会在某个时候检查当前目录。在env::current_dir()中,可能会返回一个错误,我想测试它的情况......但我没有找到如何做到这一点。它应该在Linux上运行。
有人有什么想法吗?
基本运动场:https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=b7d8ed377d2b89521e3fd2736dae383a
操场代号:
use std::env;
#[allow(unused)]
fn check_current_dir() -> Result<(), &'static str> {
if let Ok(current_dir) = env::current_dir() {
println!("Current dir is ok: {:?}", current_dir);
return Ok(());
} else {
return Err("Currentdir failed");
}
}
#[cfg(test)]
mod check_current_dir {
use super::*;
#[test]
fn current_dir_fail() {
assert!(check_current_dir().is_ok()) //want to make it fails
}
}
我尝试创建一个目录,将当前目录移动到它,删除目录(但失败了),我尝试使用一个符号链接目录(但current_dir()返回Ok())。
1条答案
按热度按时间u3r8eeie1#
current_dir
在Unix上使用的getcwd
联机帮助页中列出了可能的故障:从这里我排除了
EFAULT
,EINVAL
和ERANGE
,因为Rustsstd
正在为您处理buf
和size
。因此,例如,这个删除当前目录的测试将失败:但是,对于您当前的
check_current_dir
实现,这实际上是在测试std
,它已经经过了很好的测试,您不需要这样做。