Warm tip: This article is reproduced from serverfault.com, please click

unit testing-测试PHP S3Client uploadAsync方法的错误处理

(unit testing - Test error handling of the PHP S3Client uploadAsync method)

发布于 2020-11-16 15:39:32

方法uploadAsync自动确定并上传单个或多个块的对象。我们可以期望的预期2个不同类型的S3ExceptionS3MultipartUploadException我们的$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.

我该如何处理这种情况?

Questioner
Matjaž Mav
Viewed
0
Matjaž Mav 2020-11-29 07:19:21

我已经在项目仓库中询问了这个问题,他们确认这是一个错误https://github.com/aws/aws-sdk-php/issues/2143