是否可以使用Hamcrest在不扩展库的情况下测试期望值是否为数字?
我在想类似的东西:
assertThat(expectedValue).isNumber();
此外,值得一提的是,ExpectedValue是String
。
答案 0 :(得分:1)
编写自己的匹配器:
import org.hamcrest.Description;
import org.hamcrest.Matcher;
import org.hamcrest.TypeSafeMatcher;
public class IsLong extends TypeSafeMatcher<String> {
@Override
protected boolean matchesSafely(String s) {
try {
Long.parseLong(s); // Or the number type you need
return true;
} catch (NumberFormatException nfe) {
return false;
}
}
@Override
public void describeTo(Description description) {
description.appendText("is long");
}
public static Matcher<String> isLong() {
return new IsLong();
}
}
所以您的代码看起来像
assertThat(expectedValue, isLong());
更多信息,请访问http://hamcrest.org/JavaHamcrest/tutorial(“编写自定义匹配项”部分)