模拟AmazonS3Client,而无需任何依赖,例如s3mock或s3ninja

时间:2018-09-05 06:37:34

标签: java amazon-s3 junit mockito

类中的方法使用AmazonS3Client如下:

AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                       .withCredentials(new EnvironmentVariableCredentialsProvider())
                       .build();

按行

Response response=s3Client.someMethod(request)

AmazonS3ClientBuilder不能被嘲笑为最终课程。 而且,我只是为AmazonS3随机尝试了@Mock,并且尝试了以下模拟行:

when(s3Client.someMethod(request)).thenReturn(response)

这导致

  

无法加载链中任何提供商的AWS凭证。

我猜这是因为AmazonS3ClientBuilder仍处于活动状态。当我检查替代项时,我遇到了s3mock,s3ninja,但是我用于Maven的仓库是私有的,不包含它。因此,您能否提出解决此问题的方法?

1 个答案:

答案 0 :(得分:0)

要消除执行方法,您可以使用以下方法:

LinearLayout linearLayout = null;

        for(LinearLayout cardView : selectedCardIDList){
            viewHeight += cardView.getHeight();
            if(viewHeight < 842){
                ViewGroup viewGroup = ((ViewGroup)cardView.getParent());
                viewGroup.removeView(cardView);
                linearLayout = cardView;
                pdfViewLayout.addView(linearLayout);
                viewGroup.addView(cardView);
            }
}

为方法提供一些自定义行为,请在“时间”和“ thenReturn”之间使用:

((ViewGroup)linearLayout.getParent()).removeView(linearLayout);

有关更多示例,请在文档中找到模拟样本。