aqs*_*a93 6 java amazon-s3 mockito amazon-web-services
我需要帮助在 Java 中使用 Mockito 模拟 AWS API。正如我试图模拟 RDS 连接,但连接返回空语句对象。我必须模拟 S3、AWS 数据管道JavaSaprkContext
、RDS 连接、Lambda、SNS 和 DynamoDB。
这是我的 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 ");
}
}
Run Code Online (Sandbox Code Playgroud)
和 S3 的测试用例,返回空元数据对象:
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()'");
}
}
Run Code Online (Sandbox Code Playgroud)
如果您是幸运的 JUnit 5 用户,请让我向您推荐适用于 AWS 的 JUnit 5 扩展*,一些 JUnit 5 扩展对于测试 AWS 相关代码可能很有用。这些扩展可用于为 localstack(或真实工具)等工具提供的 AWS 服务客户端注入客户端。支持 AWS Java SDK v 2.x 和 v 1.x。
*我维护这个库