基于字符串参数的java Mockito模拟响应
我需要嘲笑亚马逊人。从com.amazonaws.services.s3
库中获取对象(GetObjectRequest,File),以测试我自己从中获取文件的方法
我需要一个测试,在这个测试中找到了请求的对象,并且一切正常,在S3中找不到文件,然后返回将返回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以完全测试我的函数
我希望问题是清楚的
# 1 楼答案
我希望我理解正确
如果有帮助,你可以试试
第一个调用应该返回objectMetadata,第二个调用应该返回null