我有一个类Record
,它使用new URL(Record.SOURCE_URL)
。我有一个名为BaseTestController
的测试基类。每个其他测试类都会扩展它。我想模拟new URL
,因为Record.SOURCE_URL
在本地机器上不可用。模拟所有类的URL
这是我有:
@RunWith(PowerMockRunner.class)
@PrepareForTest(Record.class)
public abstract class BaseTestController {
@Before
public void setUp() {
PowerMockito.whenNew(URL.class).withArguments(Record.SOURCE_URL).thenReturn(PowerMockito.mock(URL.class));
}
}
这将返回一个错误:
java.lang.AbstractMethodError: java.net.URLStreamHandler.openConnection(Ljava/net/URL;)Ljava/net/URLConnection;
如何正确嘲笑我的URL类?
也许这个职位会帮助你:http://stackoverflow.com/questions/35512053/unable-to-mock-url-class-using-powermockito-mockito –
@ÉricRoberge,不幸的是它不。 – Kousha
如果您为使用的任何模拟库添加标签,您可能会得到更多回复。我对Java的嘲笑生态系统不够熟悉,但是[mockito],[powermock],[powermockito]等等都有预先存在的标签,其中大部分我都分辨不清。 –