我已经实现了PowerMockTestListener在每种测试方法之前和之后进行一些记录。 我想使用测试实例中使用的相同记录器。测试类的层次结构如下:
BaseTest -> AbstractServiceTest -> ConcreteServiceTest
BaseTest有一个公共方法,该方法返回受保护的记录器实例。
我的测试执行侦听器如下:
@Override
public class MyTestExecutionListener implements PowerMockTestListener {
public void beforeTestMethod(Object o, Method method, Object[] objects) {
BaseTest testInstance = (BaseTest)o; //This works perfect
testInstance.getLogger().log("START");
}
@Override
public void afterTestMethod(Object o, Method method, Object[] objects, TestMethodResult
testMethodResult) {
BaseTest testInstance = (BaseTest)o; //Now here its throwing ClassCastException
testInstance.getLogger().log("FINISH");
}
//Other interface methods
}
这太奇怪了,能够在 beforeTestMethod 中而不是在 afterTestMethod 中投射相同的实例。
我正在使用PowerMockito版本- 1.7.1