Junit测试Java静态方法



我是Java的新手。有可能像这样对场景进行单元测试吗?

public class exampleClass {
public static StatsDClient getClient() {
return new NonBlockingStatsDClientBuilder()
.prefix("statsd1")
.hostname("localhost")
.port(4000)
.build();
}
}

既然您已经提到StatsDClient没有任何getter,您可以重写StatsDClientequals方法吗。这样你就不需要getters

public class StatsDClient {
private String hostName;
private String prefix;
private int port;

public StatsDClient(String hostName, String prefix, int port) {
this.hostName = hostName;
this.prefix = prefix;
this.port = port;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!this.getClass().equals(obj.getClass())) {
return false;
}
StatsDClient otherStatsClient = (StatsDClient) obj;
return this.hostName.equals(otherStatsClient.hostName) && this.prefix.equals(otherStatsClient.prefix)
&& this.port == otherStatsClient.port;
}
}

您可以构建预期的StatsDClient并根据结果进行断言

@Test
public void verifyStatsDClient() {
StatsDClient actualStatsDClient = exampleClass.getClient();
StatsDClient expectedStatsDClient = new StatsDClient("expectedHost","expectedPrefix",expectedPort);
assertEquals(expectedStatsDClient,actualStatsDClient);
}

由于equals被覆盖,assertEquals应该隐式调用equals并验证

相关内容

  • 没有找到相关文章

最新更新