прежде всего .. вы можете сделать
$random_pass = $this->Auth->password($this->generatePassword());
pr($random_pass);
, чтобы убедиться, что в этой переменной действительно есть данные ...
, затем вы можете сохранить эти данные с помощью ...
$this->data['User']['password'] = $random_pass;
$this->User->save($this->data);
Также имейте в виду, что ... во время тестирования у вас есть if (! Empty ($ this-> data)), поэтому убедитесь, что вы действительно тестируете, введя некоторую форму данных по умолчанию где-то в вашемформа.