Stub
Stub copied to clipboard
Can't mock magic methods for \Aws\S3\S3Client
\Aws\S3\S3Client has way too many magic, e.g. for method putObject()
So when I try to mock this method it's treated as a property. Possible solution is to explicitly specify if it's a method or a property:
\Codeception\Stub::makeEmpty(
\Aws\S3\S3Client::class,
[
'putObject()' => 'result',
],
);
A better solution might not be to mock it at all. What I do as a clean approach is this:
- Define an interface for the functionality that you use.
- Create an implementation that uses S3 client, test it using integration tests
- In your application tests mock your own interface.