MrB*_*MrB 6 session output-buffering yii
我正在尝试对我的控制器(Yii框架)进行单元测试.
/**
* @dataProvider provider
*/
public function testActionEdit_view_login($controller){
$user = new CWebUser;
$user->id = 978;
$identity = new UserIdentity('me@test.com', '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);
}
Run Code Online (Sandbox Code Playgroud)
当我做
$user->login($identity);
Run Code Online (Sandbox Code Playgroud)
为了登录,我收到以下错误:
session_regenerate_id(): Cannot regenerate session id - headers already sent
Run Code Online (Sandbox Code Playgroud)
我已经尝试通过将它放在类的开头来缓冲输出:
public static function setUpBeforeClass(){
ob_start();
}
Run Code Online (Sandbox Code Playgroud)
我还将ob_clean()放在tearUownAfterClass()中的setUp()和ob_end_clean()中.
我仍然收到标题已发送的消息.文件中没有空格或换行符,当我注释掉特定的测试方法时,它完美地运行.login()似乎导致了问题.
任何人都有想法如何防止这个/可能以不同方式对控制器进行单元测试?
谢谢,MrB
归档时间: |
|
查看次数: |
5203 次 |
最近记录: |