#assertions #failure #information #messages #sophisticated

yanked arsert

提供更复杂失败信息的断言

0.0.2 2019年1月12日

#85 in #failure

MIT 许可证

14KB
154

Build Status

arsert

arsert - 提供非常复杂的失败断言

此crate允许您编写与内置 assert[assert] 相似的断言,但当断言失败时,它会输出关于断言参数的诊断信息。

使用方法

这里是一个失败的断言

use arsert::arsert;
let x = 1;
let y: i32 = 2;
arsert!(x >= y.pow(3));

输出如下

thread 'main' panicked at 'x >= y . pow ( 3 )
x = 1
y . pow ( 3 ) = 8', arsert_failure/src/lib.rs:23:5

这里是一个成功的例子

use arsert::arsert;
let x = 20 as i64;
arsert!(x <= x.pow(3));

支持的操作

目前,arsert支持"简单"断言(非常类似于assert),一元断言(例如 *foo!foo),以及二元操作断言,如 ==>&& 等。

我正在开发更多支持的表达式(也许,一旦proc_macro语句稳定,会提供扩展机制)。

名称

抱歉使用厕所幽默(每个人都会拉屎,对吧)。欢迎提出简短而有意义的名称改进建议。

许可证:MIT

依赖项

约2MB
约46K SLoC