Sto sviluppando un'applicazione in Cake 2.2, e sto attualmente scrivendo alcuni test unitari. I test del modello stanno funzionando bene, ho alcuni problemi con i test del controller in generale.Cakephp 2.0 mock auth
La situazione: - la maggior parte delle azioni richiedono un login utente - ci sono componenti personalizzati e librerie dei venditori - Ho infissi per tutte le tabelle
Il problema: - Molte azioni usano il "$ questo -> Auth-> utente() metodo" per ottenere i dati utente - se scrivo un test per l'azione, l'utente-DATA è (ovviamente) non existant
la mia soluzione (non funzionante): - Ho provato a prendere in giro il componente auth, in modo che contenga il metodo utente e restituisca sempre un ar statico ray contenente i dati degli utenti, ma restituisce nulla, ecco il codice:
$Days = $this->generate('Days', array('components' => 'Auth'));
$Days->Auth->expects($this->once())->method('user')->will($this->returnValue(array(..userdata etc.)));
$result = $this->testAction('/days/settings');
E 'solo continua a dire che il metodo non è stato chiamato (ospitarci il metodo impostazioni all'interno del controller Giorni chiama esattamente una volta). Cosa c'è di sbagliato nel mockup? Hmmm ..
Qualsiasi aiuto sarebbe apprezzato!
operativa -Editazione- Il codice del metodo in fase di verifica:
public function myDays()
{
$user = $this->Auth->user();
$days = $this->Day->find('all', array('conditions' => array('user_id' => $user['id'], 'active' => 1)));
$this->set('days', $days);
}
Stai chiamando 'testAction' più di una volta nel tuo test? È questo il tuo intero metodo di prova? –
Ciao, no, solo una volta, questo è il codice completo in quell'azione per ora, dal momento che non funziona non ho scritto altro codice di test per questo. –
Si prega di includere anche il metodo che stai testando, potrebbe aiuta a vedere cosa sta succedendo. –