我需要从com.amazonaws.services.s3
库中模拟amazonS3.getObject(GetObjectRequest,File),以测试我自己的从文件中获取文件的方法。
我需要一个测试,在其中找到请求的对象并且一切正常,并且在S3中没有找到文件的测试取消,然后Return将返回null。
所以简单的情况是这样的:
ObjectMetadata objectMetadata = new ObjectMetadata();
Mockito.lenient().when(amazonS3.getObject(any(GetObjectRequest.class), any(File.class))).thenReturn(objectMetadata);
如何复制和修改此值以允许根据对象输入获得不同的收益?
在函数本身中,这就是作为GetObjectRequest输入的内容:
GetObjectRequest getObjectRequest = new GetObjectRequest(this.getBucketName(), objectKey);
因此,我们需要将any(GetObjectRequest.class)
更改为将objectKey(string)为“ X”的对象与objectKey为“ Y”的另一个调用区分开的东西,在这种情况下,我想将null返回完全测试我的功能。
我希望问题清楚吗?
答案 0 :(得分:1)
我希望我能正确理解。
如果有帮助,您可以尝试
when(amazonS3.getObject(any(GetObjectRequest.class),any(File.class)))
.thenReturn(objectMetadata)
.thenReturn(null);
第一次调用应返回您的objectMetadata,第二次返回null。