PHPUnitでMockeryを使用してUTコードを記述しています。
自作関数hogeをテストしようとしています。hoge()内で、S3ClientメソッドheadObjectを使用しているため、headObject()をMock化しています。
そのテストケースとして、hoge関数内で、
「Aws\S3\Exception\S3Exception発生時のテスト」をしたいので、Mockで設定したいのですが、うまくいかずUT実行時にエラーになってしまいます。
何か方法はありますでしょうか?
[テストコード] $mock = Mockeery::mock('Aws\S3\S3Client'); $mock->shouldReceive('headObject') ->with(m::any()) ->andThrow(new S3Exception('', new Command(''))); // テスト実行 $client = new \Model_client($mock); $ret = $client->hoge('xxxxx'); ... // assert ...
[UT実行時エラー]
Fuel\Core\PhpErrorException: Argument 2 passed to Aws\Exception\AwsException::__construct() must implement interface Aws\CommandInterface, none given, called in ...
→ parametereを追加したら、エラーは消えましたが期待値と異なったので、hoge()内を確認し、エラー制御に問題があったことが分かりました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。