2016-10-19 75 views
-2

這裏是我的代碼:我怎麼能嘲笑的SOAP連接和SOAPConnectionFactory

URL url = new URL(getURL()); 
SOAPConnectionFactory soapConnFactory = SOAPConnectionFactory.newInstance(); 
SOAPConnection soapConnection = soapConnFactory.createConnection();` 
response=soapConnection.call(soapMsg, url); 

我試圖創建一個SOAPConnection模擬,但我得到一個異常。 任何人都可以爲我提供任何解決方法嗎?

我的測試是這樣的: 我創建了一個SOAPMessage對象和URL對象。

Resource classUnderTest = new Resource(); 
SOAPConnection mockConnection = EasyMock.createMock(SOAPConnection.class); 
EasyMock.expect(mockConnection.call(soapmsg, url)).andReturn(soapMsg); 
EasyMock.replay(mockConnection); 
WhiteBox.setinternalState(classUnderTest, SOAPConnection.class, mockConnection); 

回答

-1

使用Mockito而不是easymock,Mockito是比較新的。

使用下面的代碼來模擬一個類型。

import org.junit.Test; 
import org.mockito.Mock; 

public class MyTest { 

@Mock 
ClassToMock mockObj; 


@Test { 
    // use the mock here 
} 

}

+0

即使我嘲笑對象,它仍然指向我指定的URL,所以我試着嘲笑的URL對象,它沒有工作。 –

+0

看起來像我們不能嘲笑的url對象,它應該是功能的網址或否則它會通過投擲畸形的URL異常通過測試失敗 –

+0

如果你使用Mockito你可以嘲笑任何類型..這就是爲什麼我告訴你使用Mockito。 – Jobin

0

一個更好的辦法可能是嘲笑本地主機端口上的全部服務。我已經寫了一個small library,其中大部分是舉重。