読者です 読者をやめる 読者になる 読者になる

絶対パスでrequire_onceしているクラスをなんとかテストする

php

状況

パフォーマンス最適化でrequire_onceのパス指定を絶対パスにしている場合、 phpUnitでテストする際に呼び出しにくい。

指定先にファイルを置くのが自然だけど、sudo権限持ってないと置けないパスだったり、修正のたびに配置し直す必要があったり意外と面倒。

そこで、強引だがテスト前に外部コマンドでrequire_onceをコメントアウトすることにした。 これで、tmp以下のファイルをrequire_onceすれば、元のクラスを呼び出すこともできるし、テストダブルを差し込むことも可能になる。

サンプル

絶対パスでrequire_onceしているクラスをなんとかテストする

参考