所有,
我正在尝试在一些古老的Java代码中进行一些单元测试(无接口,无抽象等)。
这是一个使用ServletContext的servlet(我假设它是由Tomcat设置的),并且它的数据库信息在web.xml / context.xml文件中设置。现在,我已经弄清楚了如何制作Fake ServletContext,但是代码已经
InitialContext _ic = new InitialContext();
遍布整个地方(因此替换它是不可行的)。我需要找到一种方法来使默认的InitialContext()能够做到而_ic.lookup(val)不会引发异常。
_ic.lookup(val)
我假设有某种方式可以加载context.xml,但是该魔术如何工作,我正在绘制空白。有人有主意吗?
您可以使用PowerMock模拟InitialContext的构造并控制其行为。此处记录了构造器模拟。
PowerMock测试可能非常混乱且复杂,重构通常是更好的选择。