繁体   English   中英

如何在方法超类中模拟,从静态方法开始?

[英]How to mock in method superclass, starts with static method?

如何使用PowerMockito或Mockito模拟超类中的“ getServerName”方法?

public class A extends B{

  public static String builder(){
    return new A().get();
  }

  private String get() {
    return this.getServerName();
  }
}

public abstract class B{

  protected String getServerName(){
    return "Server 1";
  }
}

记住我是通过静态方法执行的:

public static void main (String [] args) {
   String name = A.builder();
}

我能够解决!

你必须监视A班

A a = PowerMockito.spy(new A());
PowerMockito.when(a, "getServerName")
           .thenReturn("Mock Value");

// Here is the movement, you have to replace the original constructor.
PowerMockito.whenNew(A.class).withNoArguments().thenReturn(a);

System.out.print(A.builder());

--> Mock Value

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM