PhpStorm+PHP Unitを書く場合に、MockObjectを作成すると、PhpStormのinspection機能により、警告が出る。

・ ->getMock() で返ってくる$mockobjにwidth()というメソッドが無いとinspection警告される。
phpstorm_phpdoc_no_var

・$mockobj の PHPDocを記載して、解決を図る。この場合、PapaerクラスのMockと明示してみるが、今度はMockObjectの->method がinspection警告出る。


    /** @var Paper $mockobj */

phpstorm_phpdoc_var_single_class

なんとかならないかと思っていたら、PHPDocの@var は 「|」でOR の表現ができた!(知らなかった。)mockobj がPaper,PHPUnit_Framework_MockObject_MockObjectであることを明示すると、inspection警告が無くなった!


    /** @var Paper | PHPUnit_Framework_MockObject_MockObject $mockobj */

phpstorm_phpdoc_var_multiple_class

このORでの表記方法は他にも使えそうに思えるので、覚えておこう。