我的课程是:
public class SomeClass { private String someField; public SomeClass(String field) { someField = field; } public String getUrl() { return "http://" + someField; } public static class Builder { private String uri; public Builder(String url) { this.uri = url; } public SomeClass build() { return new SomeClass(uri); } } }
上述类是从另一个类中调用的:
class MainClass { private SomeClass someClass; public boolean isUrlAvailable() { someClass = new SomeClass.Builder("myURI").build(); String url = someClass.getUrl(); if (url != null && url.length() > 10) { return true; } return false; } }
我的要求是测试MainClass,为此我需要模拟SomeClass和SomeClass。生成器类。我试图模仿这两个班,但未能成功达到要求。
您正在显示的代码应该 不
无论如何:模拟静态类是可能的-请参阅 here . 唯一需要注意的是:要正确设置所有先决条件,例如,要有所需的注释:
RunWith(PowerMockRunner.class) @PrepareForTest(SomeClassBuilderClass.class)
静止的 问题是呼叫 新
和-the 真实的 回答:简单 通过 在某个类的实例中工作(而不是调用 new Builder
new Builder