10 个稳定版本
1.1.1 | 2020年4月2日 |
---|---|
1.1.0 | 2019年12月19日 |
1.0.9 | 2019年9月16日 |
1.0.8 | 2019年6月11日 |
0.9.8 | 2018年3月27日 |
#1829 在 硬件支持
27 每月下载量
325KB
5K SLoC
注意
请访问我们的 主页 了解使用方法。谢谢!
lib.rs
:
sgx_tunittest 用于在区域中进行单元测试。
要使用此包,首先需要导入 sgx_tstd 和此包中定义的断言宏,如下所示
#[macro_use]
extern crate sgx_tstd as std;
#[macro_use]
extern crate sgx_tunittest;
与 Rust 中的 #[test]
类似,单元测试函数需要接受零个参数并返回空值。只有当测试函数在没有 panic 的情况下返回时,一个测试才成功。
与 Rust 不同,我们不使用 #[test]
、#[should_panic]
等特性来声明单元测试函数。相反,要声明一个单元测试函数,只需将其实现为正常即可。
以下是一个示例单元测试函数
fn foo() {
assert!(true);
assert_eq!(1,1);
assert_ne!(1,0);
}
要启动单元测试,应使用宏 rsgx_unit_test!
。例如,假设我们有三个单元测试函数:foo
、bar
和 zoo
。要开始测试,只需按以下方式编写
rsgx_unit_tests!(foo, bar, zoo);
sgx_tunittest 支持失败测试(必须 panic)。但它不提供 Rust 风格的(#[should_panic])。应使用宏 should_panic!
来断言会导致 panic 的语句。例如
fn foo_panic() {
let v = vec![]
should_panic!(vec[0]); // vec[0] would panic
}
这样,vec[0]
将 panic。但 should_panic!
捕获了它。因此,foo_panic
将通过单元测试。
依赖项
~0–285KB