Java “如何嘲笑”;新";在Mockito中的方法内创建对象

Java “如何嘲笑”;新";在Mockito中的方法内创建对象,java,unit-testing,mockito,java-test-fixtures,Java,Unit Testing,Mockito,Java Test Fixtures,我有一个遗留代码,代码如下所示: public String getToken() { HttpURLConnection urlConnection = (HttpURLConnection)(new URL(endpoint).getConnection(); .. } 如何模拟新URL(端点).getConnection()。在我得到一个模拟的urlConnection之前,我不能继续进一步说明该方法。你不能模拟这段代码。为什么? 假设您模拟了URL对象,但当代码到达代码的这一部分时,

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

public String getToken() {

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

如何模拟新URL(端点).getConnection()。在我得到一个模拟的
urlConnection
之前,我不能继续进一步说明该方法。

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

假设您模拟了URL对象,但当代码到达代码的这一部分时,
新URL(端点)
始终会创建新的URL对象


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

您不能。您发现的是代码设计的一个问题——它与具体实现紧密耦合。