#やりたいこと
phpunitで関数が実行されたかどうかを判定したいです。
if文で、エラーを吐き出す関数を実行するか、スルーするかというコードで、実際にエラー条件の時にエラーを吐き出す関数を実行するかどうかをテストします。
#コード
テストしたいコード
namespace App\Controllers; class aaaaController extends \Base\Controller { public function runAction($Id1, $Id2) { if (!$this->request->hasFiles()) { $this->_setErrorContent('ファイルを選択', 'snackbar'); } } ``` テストコード(現時点でできているところまで) ``` class aaaaaControllerTest extends \UnitTestCase { public function testsFileUploadError() { //コントローラーのモックを作る $mockController = $this->getMockBuilder(\App\Controllers\aaaaController::class) ->setMethods(['runAction']) ->getMock(); //リクエストをfalseにする $mockaaaaController->request = new class { public function hasFiles() { return false; } }; //あとは_setErrorContent関数が実行されたかどうかを判定したい } ``` #備考 _setErrorContentは、BaseControllerで定義されているんですが、そちらまで追ってテストしようとしましたが、うまくいきませんでした。 代替案として、関数が実行されたかどうかのテストをしたら解決できるのでは?と思い、質問させていただいています。 検索してもほとんど出てこないため、もしかしたら関数が実行されたかどうかのテスト自体できない可能性もありますが、ご存知の方教えてください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。