3 个不稳定版本
使用旧的 Rust 2015
0.2.1 | 2015年9月24日 |
---|---|
0.2.0 | 2015年9月23日 |
0.1.0 | 2015年9月15日 |
#866 in 测试
27KB
639 代码行
Oxidize
Oxidize 是一个库,使测试中的断言更容易阅读和编写。
Oxidize 允许你在单元测试(或任何地方)的对象上设置期望结果。这比仅仅使用断言更流畅的表达方式,并产生更易于阅读的错误消息。
例如
use oxidize::dsl::*;
expect("optimus prime").to(contain("prime"));
任何期望都可以被否定
use oxidize::dsl::*;
expect("megatron").to_not(contain("prime"));
内置匹配器
Oxidize 提供了内置的 匹配器,你可以用于各种数据。
相等性
use oxidize::dsl::*;
expect(1).to(equal(1));
expect(6).is(greater_than(0));
expect(-120).is(less_than(5));
真值
use oxidize::dsl::*;
struct Transformer { is_prime: bool };
let optimus = Transformer { is_prime: true };
expect(optimus.is_prime).to(be_true());
struct Paradox;
impl Paradox {
fn can_fly(&self) -> bool {
false
}
}
let pigs = Paradox;
expect(pigs.can_fly()).to(be_false());
子串/容器
use oxidize::dsl::*;
expect(vec![1, 2, 3]).to(contain(2));
expect("Energon Cube").to(contain("Cube"));
长度
use oxidize::dsl::*;
expect(vec![1, 2, 3, 4]).is_not(empty());
选项/存在性
use oxidize::dsl::*;
let mut big: Vec<u64> = vec![1337u64];
expect(big.pop()).is(some());
expect(big.pop()).is(none());
正则表达式
use oxidize::dsl::*;
expect("sam").to(match_regex("..."));
灵感
以下项目在 oxidize 的设计中提供了灵感(也许它们也会给你带来灵感!)
依赖关系
~3.5MB
~75K SLoC