Pracuję nad aplikacją w Cake 2.2, i obecnie piszę niektóre testy jednostkowe. Testy modelu działają dobrze, mam pewne problemy z testami kontrolera w ogóle.Cakephp 2.0 mock auth
Sytuacja: - większość działań wymaga logowania użytkownika - istnieją elementy niestandardowe i biblioteki sprzedawca - mam uchwyty dla wszystkich tabel
Problem: - Wiele działań użyć „$ this -> Auth-> user()”metoda, aby uzyskać przez użytkownika dane - jeśli piszę test dla tego działania, użytkownik-DATA jest (oczywiście) nie istnial
moje (nie pracuje) rozwiązanie: - Próbowałem sfałszować komponent auth, aby zawierał on metodę użytkownika i zawsze zwracał statyczny ar ray zawierającego dane użytkownika, ale zwraca null, oto kod:
$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');
To po prostu powtarza, że metoda nie nazwano (altough metoda ustawień wewnątrz sterownika Days nazywa go dokładnie jeden raz). Co jest nie tak z makietą? Hmmm ..
Każda pomoc będzie doceniona!
-edit- Kod metody, która jest testowana:
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);
}
Czy w swoim teście nazywasz 'testAction' więcej niż jeden raz? Czy to jest twoja cała metoda testowania? –
Witam, nie, tylko raz, jest to kompletny kod w tej akcji na razie, ponieważ to nie działa, nie napisałem dla niego innego kodu testowego. –
Proszę również podać testowaną metodę, może pomóc zobaczyć, co się dzieje. –