嗨我请求你的帮助,知道如何模仿类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