3 个不稳定版本

使用旧的 Rust 2015

0.2.1 2015年9月24日
0.2.0 2015年9月23日
0.1.0 2015年9月15日

#866 in 测试

MPL-2.0 许可证

27KB
639 代码行

https://travis-ci.org/samfoo/oxidize

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