我試圖單元測試我的控制器(Yii框架)。session_regenerate_id() - 已在單元測試中發送的頭文件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);
}
當我做
$user->login($identity);
才能登錄,我收到以下錯誤:
session_regenerate_id(): Cannot regenerate session id - headers already sent
我已經試圖把這個之初緩衝輸出該類別:
public static function setUpBeforeClass(){
ob_start();
}
我還將ob_clean()放在setUp()和obD_And_clean()的tearDownAfterClass()中。
我仍然收到標題已經發送的消息。當我註釋掉特定的測試方法時,文件中沒有空格或換行符,它可以很好地工作。 login()似乎會導致問題。
任何人都有想法如何防止這/可能單元測試控制器不同?
感謝, MRB
你是怎麼找到這些的?我遇到了同樣的問題,但我看不到包含文件的任何地方。 – Hippyjim