汉克雷斯特数比较使用
在Hamcrest中,有没有办法比较数字范围内的数字?我正在寻找这样的东西:
assertThat(50L, is(between(12L, 1658L)));
在Hamcrest中,有没有办法比较数字范围内的数字?我正在寻找这样的东西:
assertThat(50L, is(between(12L, 1658L)));
Jeff 解决方案的另一种方法是使用 :both
assertThat(50L, is(both(greaterThan(12L)).and(lessThan(1658L))));
我认为这是相当可读的。如果检查失败,您还会收到一条错误消息:
预期:是(大于 <50L 的值>小于 <1658L>)得到:<50L>
我不认为这是核心hamcrest匹配器的一部分,但你可以做这样的事情:between
assertThat(number, allOf(greaterThan(min),lessThan(max)));
这仍然有点丑陋,因此您可以在
assertThat(number, between(min,max))
和看起来像between
allOf(greaterThan(min),lessThan(max))
仍然不是一个梦幻般的解决方案,但它读起来像一个hamcrest matcher。
如果你找不到一个公开可用的,那么写你自己的匹配器 http://code.google.com/p/hamcrest/wiki/Tutorial 是微不足道的。between