这有点难以解释,但代码应该说清楚。我正在通过Java koans(https://github.com/matyb/java-koans)来自学Java - 顺便说一句,我推荐它们很有趣。
无论如何,代码中有一堆断言语句,你必须纠正才能完成koans。目前,下面的两个断言声明都失败了。我在修理第一个时遇到了问题。
实际抛出的是java.util.MissingFormatArgumentException
。所以e.getClass()将返回它。但它返回一个实际的Class对象,而不是一个字符串。为了使assert语句成功,我想我需要为java.util.MissingFormatArgumentException
获取一个Class对象。但是我不能只创建一个,因为Class类没有公共构造函数(参见https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html)。
任何想法如何解决这个断言?简单地删除它将是作弊。修复String.format()也会作弊。
public void insufficientArgumentsToStringFormatCausesAnError() {
try {
String.format("%s %s %s", "a", "b");
fail("No Exception was thrown!");
} catch (Exception e) {
assertEquals(e.getClass(), "");
assertEquals(e.getMessage(), "");
}
}