【发布时间】:2014-11-10 11:36:26
【问题描述】:
我是编程新手,有一个菜鸟问题。我正在尝试进行这样的测试...
@Test
public void rememberTest()
throws DuplicateException{
try{
personA.remember(sighting4);
}
catch (Exception e) {
fail("Failed" + e.getMessage());
}
try{
assertEquals(personA.remember(sighting3), "The list already contains this sighting");
}
catch (Exception e) {
fail("Failed" + e.getMessage());
}
}
第一个 try/catch 编译,但第二个没有。它告诉我这里不允许使用“'void'”类型。 " 为什么我不能使用 void?如果我不能使用 void 类型,那么我将如何构建我的测试以便引发异常?
一些背景信息:rememberTest 是对将项添加到 ArrayList 的 remember 方法的测试。
Person类中的remember方法如下:
public void remember(final Sighting s)
throws DuplicateException
{
if(lifeList.contains(s)) {
throw new DuplicateException("The list already contains this sighting");
}
lifeList.remember(s);
}
如果您需要更多信息,请提出要求,我会根据需要发布。
【问题讨论】:
-
remember方法的返回类型是什么? -
personA.remember(sighting3) 必须返回无效。您不能将 void 类型作为其他方法的参数。
-
嘿 Samngeeth,remember 的类型是 void
-
@nafas 那么我将如何构建此方法以便引发异常?这是我想要的信息。
-
@user3738926 更新您的问题并包含 remember 方法