首页 > 解决方案 > PHP S3Client uploadAsync 方法的测试错误处理

问题描述

方法uploadAsync自动决定并以单个或多个块上传对象。我们可以期待 2 种不同的期望S3Exception,并且S3MultipartUploadException在我们的$result['reason']. 我正在尝试模拟 S3 客户端的一部分以引发异常,我已通过 MockHandler 完成此操作:

$s3->getHandlerList()->setHandler(new MockHandler([$result], null, null)); 

而且$result是:

new S3Exception("", new Command("mockCommand"), [
                    'code' => 'mockCode',
                    'response' => new Response(401)
                ])

或者这个:

new S3MultipartUploadException(new UploadState(['testid']))

由于S3MultipartUploadException不是AwsException我得到这个异常的实例: InvalidArgumentException: Expected an Aws\ResultInterface or Aws\Exception\AwsException.

我该如何处理这种情况?

标签: phpunit-testingamazon-s3phpunit

解决方案


我在项目回购中问过这个问题,他们确认这是一个错误https://github.com/aws/aws-sdk-php/issues/2143


推荐阅读