0

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

public String getToken() {

HttpURLConnection urlConnection = (HttpURLConnection)(new URL(endpoint).getConnection();
..
}

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

4

1 回答 1

1

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

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

这是一个糟糕的设计,您可以做的最好的事情是将对象注入构造函数,这使得代码易于测试,因为您可以模拟它。

于 2021-05-21T16:51:40.930 回答