如何模擬DriverManager.getConnection()方法?如何模擬DriverManager.getConnection?
我想測試我的方法setUpConnectiontoDB()
我PowerMock,EasyMock的和Mokito自己試了一下。我沒有發現任何有用的東西。
我的代碼:
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class MysqlDAO implements DAO {
private final Properties properties = new Properties();
public MysqlDAO(String configPath) {
loadProperties(configPath);
}
private Properties loadProperties(String configPath) {
try {
properties.load(new FileInputStream(configPath));
} catch (IOException e) {
e.printStackTrace();
}
return this.properties;
}
@Override
public Connection setUpConnectionToDB() {
try {
Class.forName("com.mysql.jdbc.Driver");
return DriverManager.getConnection(
properties.getProperty("url"),
properties.getProperty("user"),
properties.getProperty("passwd"));
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
return null;
}
}
您沒有提供試用版嗎?你是什麼意思**我沒有發現任何有用的**?從這三個框架中選出一個,讓我們知道你面臨的挑戰是什麼?順便說一下,我不是下來的選民:)它是一個有效的問題,你提供你正確地描述它與所有需要的信息。 –
目前我正在做一個學徒,我正在學TTD。我想測試setUpConnectionToDB()方法,所以它正確地建立了一個工作連接。是的,我可以通過連接我的本地MYSQL來測試它,但這不是重點。因爲當我建立我的項目並部署它。 MYSQL將不會被測試。所以我試圖嘲笑這種方法。不是即將發表的聲明,我必須準備。或者不讓這個任何派別? – DK1990
mock返回一個假對象,所以如果你模擬'DriverManager.getConnection()',你的'Connection'對象將是一個假對象,並且你將不能在該''Connection'對象上執行任何**真實**任務。在** Jan **建議的內存數據庫中,如果您想要執行DB數據驗證,那麼該方法就行了。 –