#assertions #expect #bdd

nightly rustspec_assertions

BDD风格的断言库

9次发布

使用旧的Rust 2015

0.1.9 2015年4月24日
0.1.8 2015年4月12日
0.1.5 2015年2月26日
0.1.3 2015年1月18日
0.1.1 2014年11月26日

#837 in 测试

每月 50 次下载
rustspec 中使用

MIT 许可证

16KB
364

Rustspec-assertions 构建状态

这是尝试将类似于rspec或chai的语法移植到rust的一种尝试。

我觉得rust内置的assert!提供的功能相当有限,我个人更喜欢这种语法,所以我决定以此作为学习练习开始。

使用方法

由于beta/stable构建版本还不支持语法扩展,您需要使用rust的nightly构建版本。

将此作为依赖项添加到您的Cargo.toml,并运行cargo build

[dependencies.rustspec_assertions]
git = "https://github.com/uorbe001/rustspec-assertions.git"

现在您应该可以通过使用它们来在测试中使用这些断言

#[phase(plugin, link)] extern crate rustspec_assertions;
use self::rustspec_assertions::{expect, be_le, eq, be_lt, be_gt, be_ge, contain, be_true, be_false, be_some, be_none};

#[test]
fn be_le_int_test() {
    expect(1i).to(be_le!(2i));
}

#[test]
fn eq_f64_test() {
    expect(1.1f64).to(eq!(1.1f64));
}

该crate依赖于宏来报告更好的错误,所以您需要将此添加到您的test.rs、lib.rs或main.rs文件中

#![feature(phase)]

匹配器

以下是一些已经实现的匹配器

expect(2i).to(eq!(2i));
expect(2i).not_to(eq!(3i)); // not_to works with all the matchers
expect(3i).to(be_gt!(2i));
expect(3i).to(be_ge!(3i));
expect(2i).to(be_lt!(3i));
expect(2i).to(be_le!(2i));
expect(vec![1i, 2i]).to(contain!(2i));
expect(true).to(be_true!());
expect(false).to(be_false!());
expect(Some(1i)).to(be_some!());
expect(None::<int>).to(be_none!());

有关匹配器和更多示例的完整列表,请参阅测试

Rustspec 注意

这是为与rustspec一起使用而设计的,所以我可能最终会做出决策,以改进错误报告,这可能不适合其他选项。

无运行时依赖