Как тестировать код, где функции в основном ничего не возвращают?
ты можешь тестировать метод на срабатывание исключений + проверить те свойства что он изменяет + проверить ээ по английски это backside effect т.е. внение изменения произошедшие в результате выполнения плагина.
вообще не всегда можно написать тест, например, нельзя протестировать mail() т.к. нельзя проверить дошло ли письмо до адресата.
Если речь о Модульном тестировании - замокать всё зависимости и пройтись по всем сценариям убедившись что всё идёт по плану. Суть моков в том что вы можете проверять что будет приходить в пустые методы, указывать что они будут возвращать, или при необходимости, бросать исключение.

Если хотите проверить что в итоге сохранится в базу - это уже будет ближе к EndToEnd тестированию. В таком случае можно поднять тестовую базу, и наполнить всеми необходимыми данными, а для проверок описать свои Assert-ы которые будут ходить в базу и проверять что там лежит.

Следует учитывать что если проект активно развивается - для него будет естественным переживать периодические рефакторинги, что с высокой вероятностью будет вынуждать к переписыванию Unit-тестов. Функциональные и EndToEnd тесты наоборот - позволят рефакторить всё что только можно, обновлять зависимости и PHP как только будут выходить stable версии, и при этом быть уверенным что тестируемые сценарии всё ещё работают как вы задумывали.