Прежде всего, если вы тестируете весь путь от получения POST-данных до проверки значений в базе данных, это больше не модульный тест: вы не тестируете один компонент изолированно от других, но вы тестируете объединение этих компонентов вместе.
Это усложняет тестирование:
- Вы должны предоставлять данные более сложным способом: не только как параметры для метода, но и как параметры для всего приложения (что означает, например, подделку данных POST)
- вам нужно проверить больше вещей: не только возвращаемое значение метода, либо если оно вызвало исключение
- у вас есть несколько разных и, возможно, не связанных вещей, которые могут вызвать сбой (проблема в некотором коде PHP, проблема в базе данных, недоступность сервера базы данных, ...) , которая усложнит сбои выследить, чтобы найти причину.
Обратите внимание, что я не говорил, что подобные "интеграционные" тесты бесполезны, кстати; -)
Тем не менее, подделать массив $_POST
довольно просто: он не только для чтения, и вы можете хранить в нем все, что захотите.
Итак, в начале вашего теста ничто не мешает вам ввести в него любые данные, которые вам нужны.