我需要帮助来在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