我有一个包含 try-catch 块的方法,但我不知道如何使我的测试通过......
这是我的代码:
public class ClassToTest {
public void loadFileContent() {
try {
InputStream fileStream = fileLoader.loadFileContent();
fileContentReader = new BufferedReader(new InputStreamReader(fileStream));
} catch(CustomException ce) {
logger.log(Level.SEVERE, "Error message")
}
}
}
public class TestClassToTest {
@Test
(expected = CustomException.class)
public void testCustomException() throws Exception {
loadFileContent();
}
}
当抛出异常时我想做的唯一一件事就是记录它,并且一切都很好,但是,如何创建一个测试来显示它的工作原理?
我尝试捕获控制台输出并
assertTrue(consoleOutput.contains("logMessgae")
只要我只运行特定的测试用例,它就有效,但当我在测试套件中运行它时,它就不起作用。
该方法的约定是捕获 CustomException 并将“错误消息”记录到外部组件:记录器。因此,您应该创建一个模拟记录器,将其提供给 ClassToTest 实例,测试该方法并验证是否已使用正确的参数调用模拟记录器。
我个人使用 EasyMock (及其“classextension”扩展)来模拟具体类,但还有其他模拟框架。读http://easymock.org/EasyMock3_0_Documentation.html http://easymock.org/EasyMock3_0_Documentation.html有关 EasyMock 和一般模拟的信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)