PHP S3Client uploadAsync 方法的测试错误处理
Test error handling of the PHP S3Client uploadAsync method
方法uploadAsync
自动决定并上传单个或多个块中的对象。我们可以在 $result['reason']
中期待 2 种不同的期望 S3Exception
和 S3MultipartUploadException
。我正在尝试模拟 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.
我该如何处理这种情况?
我已经在项目回购中询问过这个问题,他们确认这是一个错误 https://github.com/aws/aws-sdk-php/issues/2143。
方法uploadAsync
自动决定并上传单个或多个块中的对象。我们可以在 $result['reason']
中期待 2 种不同的期望 S3Exception
和 S3MultipartUploadException
。我正在尝试模拟 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.
我该如何处理这种情况?
我已经在项目回购中询问过这个问题,他们确认这是一个错误 https://github.com/aws/aws-sdk-php/issues/2143。