Próbuję przetestować mój kontroler (framework Yii).session_regenerate_id() - nagłówki już wysłane w testowaniu jednostkowym Kontroler Yii
/**
* @dataProvider provider
*/
public function testActionEdit_view_login($controller){
$user = new CWebUser;
$user->id = 978;
$identity = new UserIdentity('[email protected]', '123456');
$user->login($identity);
$controller->actionEdit();
$output = ob_get_contents();
assertContains('Add/Change Profile Picture:', $output);
assertContains('bio', $output);
assertContains('specialties', $output);
assertContains('change login', $output);
assertContains('New Password', $output);
}
Kiedy zrobić
$user->login($identity);
w celu logowania, pojawia się następujący błąd:
session_regenerate_id(): Cannot regenerate session id - headers already sent
Ja już próbowałem buforowania wyjścia poprzez umieszczenie tego na początku klasa:
public static function setUpBeforeClass(){
ob_start();
}
Umieszczam również ob_clean() w setUp() i ob_end_clean() w tearDownAfterClass().
Nadal dostaję komunikat, że nagłówki zostały już wysłane. W pliku nie ma żadnych spacji ani znaków nowego wiersza, a kiedy wypowiadam się na temat konkretnej metody testowania, działa idealnie. Login() wydaje się powodować problem.
Ktoś ma pomysły, jak temu zapobiec/może przetestować sterownik w inny sposób?
Dzięki MRB
Jak to znalazłeś? Utknąłem z tym samym problemem, ale nie widzę nigdzie, że dodałem pliki. – Hippyjim