如何在 Mockito 中模拟方法中的"新"创建对象



我有一个遗留代码,代码如下所示:

public String getToken() {
HttpURLConnection urlConnection = (HttpURLConnection)(new URL(endpoint).getConnection();
..
}

如何模拟new URL(endpoint).getConnection()。在得到一个模拟的urlConnection之前,我无法继续对该方法进行进一步的说明。

您不能模拟这段代码。为什么?

假设您模拟了URL对象,但当代码到达代码的这一部分new URL(endpoint)时,总是会创建新的URL对象。

这是一个糟糕的设计,你能做的最好的事情就是将对象注入构造函数,这使得代码很容易测试,就像你可以模拟它一样

最新更新