2013-02-02 58 views
0

我有一段,我PHPUnit的測試代碼,我收到以下錯誤:PHPUnit的:找出頭已發送

session_regenerate_id(): Cannot regenerate session id - headers already sent 

我想知道位置這裏頭哪裏發送;一般來說,當我在瀏覽器中測試代碼,我看到,提到這樣的位置警告:

Warning: Cannot modify header information - headers already sent by 
(output started at /www/xxxx/x.php:52) in /www/xxxx/index.php on line 123 

但在PHPUnit測試,有沒有這樣的信息; PHPUnit只顯示上面的錯誤和回溯:

/var/www/yii/framework/web/CHttpSession.php:166 
/var/www/yii/framework/web/auth/CWebUser.php:681 
/var/www/yii/framework/web/auth/CWebUser.php:214 
... 

它只是指出錯誤發生的位置。

我該怎麼辦?

回答

0

它告訴你標題發送的地方。
解決方案將是模擬測試功能中的會話組件。

$mockSession = $this->getMock('CHttpSession', array('regenerateID')); 
Yii::app()->setComponent('session', $mockSession);