我正在将 java jUnit 测试转换为 scala。由于 scala 不使用已检查的异常,因此此 java 代码:
@Test
public void testException throws Exception = {
throw new Exception
}
可以在 scala 中重写为:
@Test def testException = {
throw new Exception
}
用 java 编写的测试将在线 throw new Exception 失败,但用 scala 编写的测试将通过,即使它也抛出一个 Exception
我可以将 scala 测试重写为如下所示的内容,因此如果抛出异常,我会通过调用 junits fail 方法显式强制测试失败:
@Test def testException = {
try {
} catch {
case e: Exception => {
fail("exception thrown "+e.getMessage());
}
}
}
我应该这样写测试吗?换句话说,对于任何抛出异常的 java 测试,我是否应该重写测试的 scala 版本以显式捕获然后无法模仿测试的 java 版本的行为方式?