Документация, это не определение функции. Void может указывать на то, что функция не возвращает ничего значимого. Так же можно в phpdoc указывать псевдотипы mixin, callback и другие для улучшения понимания, хотя таких типов в языке нет. :)
Тем не менее, null все же более корректное обозначение отсутствия возвращаемого значения для php, чем void. Про превдотипы согласен, зачастую вообще пишу что-то вроде @param string|int $argName
если имеет место перегрузка.
Тут я бы мог привязаться со словами, что слово void не приведено в качестве типа, но в качестве слова для обозначения «пустой», но вот тут показано, что как бы всё не так и, как оказалось, void является псевдотипом наряду с mixed, number, callback, но о нём какого-то фига написано внизу. Позор мне. Сам для функций без возврата @return опускал.
Вот только недавно с товарищем думали над этой связкой. Но интересней мокать не отдельные функции, а целые классы, дабы, например можно было перегружать классы со статик-методами :-)
Все равно не покрыть полностью веб-приложение такими тестами, интерфейс нормально тестить можно только в связке с Selenium, и то не полностью автоматически
Проверить, что выдаёт сервер клиенту такими тестами можно (хотя и муторно), а вот как клиент интерпретирует выдачу, конечно без клиента не проверить :)
Runkit + PHPUnit = 100% покрытие тестами