嗨我請求你的幫助,知道如何模仿類Validator.validateConnection();
的方法。 問題是方法validateConnection
不存在Class_Implementation
類中,我不想在類Class_Implementation
中創建該方法。方法validateConnection
與數據庫建立連接以確定連接是否處於活動狀態。當Mockito運行時,我得到一個java.Lang.NullPointerException
,這是由NamingException
造成的 - 需要在環境中指定類名。Mockito另一個類的對象方法
真正的問題是,當我在打電話測試的Mockito行:
Boolean resp = mockImpl.checkConnection();
..in的checkConnection()
類Validator.validateConnection();
試圖連接到數據庫。我只是想效仿這一行並返回true
或false
,但問題是方法validateConnection()
是類Validator
的一個實例。
如果需要更多的信息來解決這個問題,請讓我知道。
public class Class_Implementation {
public boolean checkConnection() {
boolean isConnectionAlive = false;
Validator.validateConnection();
// another things for do
return false;
}
}
public class Validator {
public static Boolean validateConnection() {
Connection conn = new Connection();
Boolean connectionAlive = false;
connectionAlive = conn.isConnectionAlive();
if (connectionAlive) {
return true;
} else {
return false;
}
}
}
public class Connection {
public boolean isConnectionAlive() {
// Code for connection to DB
}
}
// class for do the test
@RunWith(PowerMockRunner.class)
@PrepareForTest({Class_Implementation.class,Validator.class})
public class TestConnection {
@Test
public void validate_Connection() throws Exception {
Class_Implementation mockImpl = PowerMock.createPartialMock(Class_Implementation.class);
PowerMock.mockStatic(Validator.class);
PowerMockito.when(mockImpl, Validator.validateConnection()).thenReturn(true);
PowerMock.replayAll(mockImpl);
Boolean resp = mockImpl.checkConnection();
PowerMock.verifyAll();
Validate.notNull(resp);
}
}
等一下,您每次創建一個_new connection_嗎? – fge
是的,一直認爲行Validator.validateConnection();被執行的時候,類就完成了連接。但我做這個例子並沒有失去對如何模擬像Validator.validateConnection();並且只返回tru或false而不在類中創建一個方法Class_Implementation – IvanCC