gpt4 book ai didi

java - Mockito 基于字符串参数的模拟响应

转载 作者:行者123 更新时间:2023-12-02 10:36:45 26 4
gpt4 key购买 nike

我需要模拟 com.amazonaws.services.s3 库中的 amazonS3.getObject(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(字符串)为“X”的对象和另一个 objectKey 为“Y”的调用的内容,在这种情况下我想返回 null 来充分测试我的功能。

我希望问题很清楚?

最佳答案

我希望我理解正确。

如果有帮助,你可以尝试

when(amazonS3.getObject(any(GetObjectRequest.class),any(File.class)))
.thenReturn(objectMetadata)
.thenReturn(null);

第一次调用应返回您的 objectMetadata,第二次调用应返回 null。

关于java - Mockito 基于字符串参数的模拟响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53233148/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com