Такой код, где много if, else тестировать очень сложно и это сложно читаемо. Вынесите весь код логики в отдельные классы, с методами и тестируйте их. Например класс может быть класс
QuestionPoint . В нем методы
public function isAnswerExists($answers){}
и тому подобные..
Получится такой код, если совсем примитивно
$question = 1;
foreach ($questions as $key => $question) {
$questionPoint = new QuestionPoint($question);
$questionPoint->isAnswerExists($question, $answer)
}
Поэтому делайте код по ООП или DDD и тогда будет вам счастье. В вашем случае будет гемор. Особенно если код в контроллере. Тестировать его будет крайне сложно и долго. Такие тесты запускать никому не захочется. Вам придется в тестах поднимать приложение и базу данных. Хотя в вашем случае это вообще лишнее!
В общем выносите код из контроллера и избавляйтесь от лапши. Создавайте объекты.