【发布时间】:2013-08-26 21:28:10
【问题描述】:
中的行会导致 ClassNotFoundException 被抛出,并且必须进行处理才能编译。如果我通过使用 try-catch 来解决编译错误,那么如果抛出异常,每个单元测试都将使用未初始化的实例。如果我在方法签名中添加throws 会发生什么?
@Test
public class PanelControllerTest {
private PanelController panelController;
@BeforeTest
public void beforeTest() {
panelController = <s>new PanelController();</s>
}
}
我是测试夹具的新手,我假设这是测试类实例的正确方法。在测试夹具设置代码中处理异常的最佳方法是什么?
更新: 这似乎是从 PanelController 调用的异常的来源:
class DBAccess {
public DBAccess(DBConnection dbConnection) throws ClassNotFoundException {
Class.forName(Constants.jdbcDriver);
...
}
}
【问题讨论】:
-
我认为你需要弄清楚它为什么会抛出,并消除导致它抛出的条件。
-
嗨,如果这是预期的行为,那么我会有一个测试用例来测试这个预期的行为。
-
是每次都抛出异常,还是可以抛出异常,打乱单元测试?
-
@NathanielFord 我在我的问题中添加了“如果抛出异常”。只有当它碰巧不起作用时。
-
更新:我更新了我的代码以显示异常发生的位置,正如@RobertHarvey 提到的那样。
标签: java unit-testing jdbc exception-handling