我正在为我的项目编写一些Rust测试,并希望确保我的MongoStorage结构能够成功运行。
下面是我在Rust中的测试代码:
#[test]
fn creates_storage_successfully() {
let storage = MongoStorage::new();
if Some(storage).is_some() {
println!("Database connection established successfully");
} else {
eprintln!("Failed to establish a database connection");
}
}
字符串
但是它看起来很冗长,而且没有使用assert
函数。我相信在一行中检查变量是否不是null
会很棒。此外,我想使用适合测试的assert
函数之一,而不是print语句。但是,我找不到类似的函数,如:
assert_ne!(storage, null)
型
也许我走错了方向,或者在Rust中有更方便的方法来检查此类情况?
2条答案
按热度按时间pxq42qpu1#
Rust本身没有空值,但是看起来你的
MongoStorage::new()
返回了一个Option<T>
类型,所以你的assert可能看起来像字符串
如果它没有返回
Option<T>
类型,它应该返回一个空的存储,所以也许你应该用一个类似is_empty()
的函数来检查它是否为空。另外,
new()
函数通常用于非故障函数,所以如果它可能失败,也许你应该使用另一个名称build()
或connect()
;如果它不能失败,我想测试它没有意义。smdncfj32#
MongoStorage::new()
到底返回什么?在惯用的Rust中,如果一个函数被调用new()
,它就不会失败。特别是因为Rust中没有null
,所以你不需要Assert任何东西,所以也许你的测试是不必要的?现在,我假设它实际上是沿着
字符串
你需要检查
storage
是成功还是失败。备选办法1:
型
备选案文2:
型
备选方案3:
型