如何强制方法在jUnit测试中抛出异常?

Inc*_*ito 3 java testing junit java-ee

实际上这是为了代码覆盖,我很难接受catch陈述.有任何想法吗?

例如:

我希望我的selectSomethingBySomething()方法(从db中选择)抛出SQLException一个测试方法非常难,而不实际触及实际的源代码.还有一个限制,即我只能控制的是该WHERE子句的参数.

Tom*_*icz 8

您需要先模拟包含的类selectSomethingBySomething(),然后记录此行为.在你会说:

SomeDao someDaoMock = mock(SomeDao.class);

willThrow(new SQLException())).given(someDaoMock).selectSomethingBySomething();
Run Code Online (Sandbox Code Playgroud)

然后someDaoMock在测试中注入你的类,当它调用someDaoMock.selectSomethingBySomething()它时,它将抛出先前选择的异常.