PHPUnit和Kohana请求对象
我正在努力熟悉Kohana内部的PHPUnit测试。目前,我的代码中的Request::current()->重定向调用似乎有问题 例如,我正在尝试测试登录功能。一旦用户成功登录,我们使用上面的请求重定向行将其重定向到其主页。问题是,当那条线在那里时,测试似乎在那里停止,永远不会返回结果 以下是目前我的测试是如何编写的:PHPUnit和Kohana请求对象,phpunit,kohana,kohana-3.2,Phpunit,Kohana,Kohana 3.2,我正在努力熟悉Kohana内部的PHPUnit测试。目前,我的代码中的Request::current()->重定向调用似乎有问题 例如,我正在尝试测试登录功能。一旦用户成功登录,我们使用上面的请求重定向行将其重定向到其主页。问题是,当那条线在那里时,测试似乎在那里停止,永远不会返回结果 以下是目前我的测试是如何编写的: class SampleTest extends Kohana_UnitTest_TestCase { protected $session; public function
class SampleTest extends Kohana_UnitTest_TestCase
{
protected $session;
public function setUp() {
parent::setUp();
$this->session = Session::instance();
}
public function testLogin()
{
$request = new Request('/login');
$request->method(HTTP_Request::POST)
->post(array('username' => 'username', 'password' => 'password'));
$request->execute();
$this->assertEquals($this->session->get('username'), 'password');
}
}
如果我在我的登录控制器中注释掉以下行,一切都很好:
Request::current()->redirect(); //redirect to home
我做错了什么?标准请求(检查index.php)的操作顺序是:
$this->response->headers("Location", URL::site(NULL, TRUE));
标准请求(检查index.php)的操作顺序为:
$this->response->headers("Location", URL::site(NULL, TRUE));
我认为在Kohana中测试重定向的最佳方法是使用Unittest_请求扩展请求类 向使用位置头的Unittest_请求类添加重定向方法 向测试中添加一些帮助器方法,以便使用Unittest请求创建get和post请求 编写assertRedirectedTo、assertResponse等断言方法。。。。等等
我知道这很重要,但从长远来看,它确实会对您有所帮助。我认为在Kohana中测试重定向的最佳方法是使用Unittest\u请求扩展Request类 向使用位置头的Unittest_请求类添加重定向方法 向测试中添加一些帮助器方法,以便使用Unittest请求创建get和post请求 编写assertRedirectedTo、assertResponse等断言方法。。。。等等
我知道这很重要,但从长远来看,它确实会对您有所帮助。谢谢!这确实是问题所在。现在就像一个魔咒实际上,为了使重定向在我的应用程序中正确发生,我必须使用以下重定向行:$this->response->headers(“Location”,URL::site(NULL,TRUE));修正了我的答案,包括你的建议。谢谢!这确实是问题所在。现在就像一个魔咒实际上,为了使重定向在我的应用程序中正确发生,我必须使用以下重定向行:$this->response->headers(“Location”,URL::site(NULL,TRUE));修正了我的答案,包括你的建议。