目的
- しょーもないミスで時間を費やしてしまったので反省の意味も含めてエラー原因などをメモ的にまとめる
前提情報
- LaravelのUnitテストを実行したところ「Error: Maximum function nesting level of '256' reached, aborting!」というエラーが出た。
- テストではServiceを呼び出し、紐付いたRepositoryからデータを取得する事ができるかを確認していた。
原因
-
Serviceクラスの依存注入でそのServiceクラス自体を依存注入してしまっていた。
-
さらにServiceクラス内のメソッドでそのメソッドを呼び出す処理を記載していた。
-
わかりにくいと思うので下記に図を記載する。
-
上記でなんとなくご理解いただけたと思うがUnitテストで呼び出しているServiceクラスのメソッドが自身を呼び出すようになってしまっていた。
-
当該ループが256回に達したため、エラーを出力して処理が停止した。