我已经用Java实现了一个非常简单的ConnectionPool。它没有花哨的功能,只有获取/释放连接方法。
我如何测试它是否正常工作?
我知道那里有很多准备使用的连接池,它们比我将要使用的要可靠得多,但是我只是在尝试练习以了解连接池的工作方式。
谢谢!
如果有帮助,下面是代码:
public class ConnectionPoolImpl implements ConnectionPool {
private Vector<PooledConnection> connections; // The connections container
String url;
String username;
String password;
/**
* Instanciates a new MySQLConnectionPool
* @param nbConnectionsMax
*/
public ConnectionPoolImpl(String DBUrl, String username, String password){
this.connections = new Vector<PooledConnection>();
this.url = DBUrl;
this.username = username;
this.password = password;
}
/**
* Returns a connection from the pool, if some are available, or create a new one.
*
* @return the connection.
*/
public Connection getConnection() throws SQLException {
synchronized(this.connections){
// Checking if there is an available connection to return
for(PooledConnection c : this.connections){
if(!c.isUsed()){
c.setUsed();
return c.getConnection();
}
}
// If there are none, open a new one and return it
Connection conn = DriverManager.getConnection(url, username, password);
PooledConnection pConn = new PooledConnection(conn);
pConn.setUsed();
connections.add(pConn);
return pConn.getConnection();
}
}
/**
* Releases a connection to the pool.
*
* @param con the connection to release.
*/
public void releaseConnection(Connection con) throws SQLException {
synchronized(this.connections){
for(PooledConnection c : this.connections){
if(c.getConnection().equals(con)){
c.setFree();
return;
}
}
}
}
}
还有我的PooledConnection.java:
public class PooledConnection {
private Connection conn;
private boolean used;
public PooledConnection(Connection conn){
this.conn = conn;
this.used = false;
}
public void setUsed(){
this.used = true;
}
public void setFree(){
this.used = false;
}
public boolean isUsed(){
return this.used;
}
public Connection getConnection(){
return this.conn;
}
}
你可以测试一下
注意,这样的单元测试将需要一个真实的数据库,并带有真实的用户名和密码进行测试。您可以使连接池依赖于数据源,并使用返回模拟的Connections的模拟数据源来构建ConnectionPool,以便能够在不依赖于实际数据库的情况下测试该类。
问题内容: 我用来对我的React组件进行单元测试。我知道,为了测试原始未连接的组件,我只需要导出它并对其进行测试(我已经做到了)。我已经设法为连接的组件编写了一个测试,但是我真的不确定这是否是正确的方法,以及我究竟想对连接的组件进行什么测试。 Container.jsx Container.test.js 问题答案: 这是个有趣的问题。 我通常会同时导入容器和组件以进行测试。对于容器测试,我使用
我通过adb自动关闭/打开wifi。 我想根据测试用例禁用/启用wifi 到目前为止,我在这里找到了很好的信息 但是,我想在执行以下命令之前测试连接: 以上命令如果启用则禁用wifi,如果禁用则启用wifi。我想先测试连接,并在需要时采取措施。我想知道是否有一种方法可以使用adb命令。这可以通过编程实现,但我希望通过亚行来实现,使其更加可靠。 此外,以下命令仅在设备为根目录时有效 此外,以下命令在
问题内容: 我正在为我的一个应用编写安装程序,我希望能够测试一些默认数据库设置。 使用PDO可以测试有效和无效的数据库连接吗? 我有以下代码: 我遇到的问题是该脚本尝试连接,直到60秒的脚本执行时间用完,而不是说它无法连接到数据库。 谢谢 问题答案: 您需要在连接数据库时设置错误模式: 有关更多信息,请参见以下链接: 将MySQL与PDO结合使用 错误和错误处理
我们正在开发基于java的web应用程序,它运行在Ubuntu 12.04上。在安装开始时,我们会提示输入Oracle server的主机、端口、用户和密码 有什么简单的方法来测试Oracle连接吗?我需要用脚本编写它,它需要作为安装步骤的一部分自动运行。 谢谢你所有的帮助。
当然可以。但是我如何测试这种连接呢? 如果我以实用的方式(而不是通过spring上下文)定义连接,那么它就很清楚了,但是通过spring上下文就不太清楚如何测试它。 你能想出个主意吗?
本文向大家介绍您如何进行功能测试?,包括了您如何进行功能测试?的使用技巧和注意事项,需要的朋友参考一下 功能测试 作为功能测试的一部分,应该对业务指定的所有用户要求进行良好的测试。功能测试要求在类似于客户要求的环境中进行测试。所有边界条件,负面情景都被考虑在内。应用程序的每个功能都应该可以很好地运行,并且不会出现任何错误。 功能测试的目的 应该测试运行良好的应用程序预期的基本要求。用户界面应易于使