所以基本上我正在尝试使用powermockito为使用web服务的服务类的适配器编写Junit。
我有一个带有构造函数的适配器,它通过调用超类来在它自己的构造函数中创建一个新的服务对象。我必须测试我的适配器。我使用power mockito来模拟我的适配器以及我的服务类,但我不认为模拟对象能够执行超级调用。以下是我的代码的结构。我希望超级类可以随时返回我的模拟对象。
public class CommonPoolingServiceAdp {
private CPSSecurity cpsServicePort;
public CommonPoolingServiceAdp() {
CommonPoolingService service= new CommonPoolingService();
cpsServicePort=service.getCommonPoolingServicePort();
}
public SercurityDataResponse getBroadcastElements(broadcastReqObj)
{
SercurityDataResponse=null;
response=cpsServicePort.getBroadcastElements(broadcaseRequestObj);
}
}
public class CommonPoolingService extends Service {
{
static
{
//few mandatory initializations
}
public CommonPoolingService()
{
super(WSDL_Location,QName);
}
public CSPSecurity getCommonPoolingServicePort() {
return super.getPort(QName);
}
}
}
答案 0 :(得分:0)
请分享您的代码。顺便说一句,这就是你如何模拟超类方法:
public class SuperClass {
public void method() {
methodA(); // I don't want to run this!
}
}
public class MyClass extends SuperClass{
public void method(){
super.method()
methodB(); // I only want to test this!
}
}
@Test
public void testMethod() {
MyClass spy = Mockito.spy(new MyClass());
// Prevent/stub logic in super.method()
Mockito.doNothing().when((SuperClass)spy).methodA();
// When
spy.method();
// Then
verify(spy).methodB();
}
希望,这会有所帮助。