我必须使用JUnit测试用例测试一些api。实际上我有一些简单的JDBC数据库连接与API代码从MYSQL数据库中检索数据。 但我需要一个内存数据库来测试代码的正确性。我正在使用maven。 任何机构都可以给我适当的建议和步骤。如果可能的话,请提供一些示例JUnit代码来测试它。
谢谢, RK
答案 0 :(得分:1)
查看DBUnit - 他们的操作方法是http://dbunit.sourceforge.net/howto.html
它完全符合您的要求。
DBunit网站有很多例子。我的工作如下:
在@Before方法中设置d / b,因此每个测试都得到一个干净的夹具。 @Before方法的一个例子是:
Connection conn = dataSource.getConnection();
try {
IDatabaseConnection connection = new DatabaseConnection(conn);
DatabaseConfig config = connection.getConfig();
config.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY,
new HsqldbDataTypeFactory());
DatabaseOperation.CLEAN_INSERT.execute(connection, loadDutyData());
DatabaseOperation.CLEAN_INSERT
.execute(connection, loadHelperData());
} finally {
DataSourceUtils.releaseConnection(conn, dataSource);
}
loadHelperData()方法执行以下操作:
DataFileLoader loader = new FlatXmlDataFileLoader();
IDataSet ds = loader.load(TEST_DATA_FILE_HELPER);
return ds;
load方法只需要一个表示数据库的xml文件。有关更多信息,请参阅DBUnit文档。
答案 1 :(得分:1)
答案 2 :(得分:0)
我想在这里添加一些代码:
public JSONObject getResultById(int id) {
Connection conn = null;
Statement stmt = null;
String sqlQuery = "select * from " + table + " where id='"
+ id + "'";
try {
//get the connection
conn = DBConnection.getConnection();
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sqlQuery);
//return result set in JSON format
return getJsonString(rs);
} catch (Exception ex) {
return null;
} finally {
try {
if (conn != null)
conn.close();
if (stmt != null)
stmt.close();
} catch (Exception ex) {
return null;
}
}
}
要测试这是测试它的最佳方法。我有些人给出了一些示例JUnit测试用例然后它会非常有帮助