我有一个遗留代码,代码如下所示:
public String getToken() {
HttpURLConnection urlConnection = (HttpURLConnection)(new URL(endpoint).getConnection();
..
}
如何模拟new URL(endpoint).getConnection()
。在得到一个模拟的urlConnection
之前,我无法继续对该方法进行进一步的说明。
您不能模拟这段代码。为什么?
假设您模拟了URL对象,但当代码到达代码的这一部分new URL(endpoint)
时,总是会创建新的URL对象。
这是一个糟糕的设计,你能做的最好的事情就是将对象注入构造函数,这使得代码很容易测试,就像你可以模拟它一样