junit 中的整数范围断言?

Integer range assertion in junit?

我想编写一个 junit 断言来表达:"integer X must be between 10 and 17",但我找不到执行此操作的简单方法。我真的需要实现自定义匹配器吗?我确实想要一条错误消息,告诉我实际值是多少。

有什么问题:

int high = 17;
int low = 10;
assertTrue(myInteger + " is not in [" + low + ", " + high + "]",
           myInteger >= low && myInteger <= high);

?

如果您不止一次使用它,请将其排除在外。

AssertJ has the isBetween(a, b) matcher built into its AbstractIntegerAssert。一个读起来像自然语言的简单测试用例将给出一个有意义的失败报告 "for free":

Integer x = 5;
assertThat(x).isBetween(10, 17);

输出:

java.lang.AssertionError: 
Expecting:
 <5>
to be between:
 [10, 17]