我需要幫助來在Java中使用Mockito來模擬aws apis。正如我試圖嘲笑RDS連接,但連接返回空語句對象。我必須模擬S3,AWS數據管道,JavaSaprkContext,RDS連接,Lambda,SNS和DynamoDB。如何在java中使用Mockito模擬AWS API
這裏是我的RDS連接代碼,返回空語句對象:
public void testGetRDSConnection() throws SQLException{
Connection connection = mock(Connection.class);
Statement stmt = null;
stmt = connection.createStatement(); // Get NULL statement Object
ResultSet rs = stmt.executeQuery("SELECT * FROM table");
if (rs.next()) {
System.out.println("+ve Test is PASSED Name = testGetRDSConnection ");
} else {
System.out.println("+ve Test is FAILED Name= testGetRDSConnection ");
}
}
和測試用例S3,即返回null元數據對象:
public void testGetObjectMetadata(){
ObjectMetadata obj = S3Util.getObjectMetadata(mock(AmazonS3Client.class), bucketName, filePath);
if (obj == null) {
System.out.println("+ve Test is FAILED Name= 'testGetObjectMetadata()' No metadata found");
fail("+ve Test is FAILED Name= 'testGetObjectMetadata()' No metadata found");
} else if (obj != null) {
System.out.println("+ve Test is FAILED Name= 'testGetObjectMetadata()'");
}
}
你的第一個測試是一個單元測試,旨在測試'Statement'。你的第二個測試是一個旨在測試'S3Util'的單元測試。我假設這些都不是你自己的代碼。 – Compass
換句話說,您提供的代碼段都沒有測試主題。你的測試目標是什麼?除了API代碼之外,您都不能提供任何類型的目標,這不應該是需要檢查的東西。 – Compass