【发布时间】:2014-04-21 09:58:15
【问题描述】:
我正在尝试对处理消息日志的代码进行单元测试,这会带来很多环境依赖性。此消息记录器是跨团队的所有开发人员使用的框架。我也使用过 PowerMock,因为 Logging 类是静态类。
虽然 Junit 单元测试在使用 Power Mock 后运行绿色,但它仍在尝试加载 server.xml 文件。
类调用如下
单元测试类调用->静态记录器类调用->静态环境类。
这个静态环境类处理加载和解析 server.xml 文件。
我也尝试过以下方法,但即便如此,它还是会加载 xml 文件:
@RunWith(PowerMockRunner.class)
@PrepareForTest({Logger.class,EnvFunctions.class})
PowerMockito.mockStatic(Logger.class);
PowerMockito.mockStatic(EnvFunctions.class);
我是否需要做一些额外的工作才能让它不再尝试加载该文件?
我很想模拟一个静态的 void 类,并尝试使用 doNothing 和 supress。但它不工作
doNothing.when(Logger.class);
suppress(everythingDeclaredIn(Logger.class));
【问题讨论】:
标签: java unit-testing logging junit powermock