我有一个应用程序,它通过设置到我的应用程序域的cookie来使用外部服务。在开发过程中,我手工创建了这个cookie,但在生产中,这个cookie将通过登录生成。在我为这个外部服务运行测试之前,有没有办法使用我在开发过程中设置的cookie?
我猜测我可以使用curl来自动化这一点,但我想知道我是否在PHPUnit和/或Selenium中遗漏了一些隐藏的功能或技术。
[扩展类 PHPUnit_Extensions_SeleniumTestCase ]
/**
* Can get the current authenticated user.
*/
public function testCanGetTheCurrentAuthenticatedUser()
{
$this->open('http://my/local/virtual/host/api/getCurrentUser');
$json = json_decode($this->getBodyText());
$this->assertEquals('25', $json->response->id);
}
答案 0 :(得分:1)
使用Curl结束需要进行cookie身份验证的测试。
$curl = curl_init('http://my/local/virtual/host/api/getCurrentUser');
curl_setopt($curl, CURLOPT_COOKIE, 'mycookie=authentication');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($curl);
$json = json_decode($output);
$this->assertEquals('25', $json->response->id);
答案 1 :(得分:0)
Selenium documentation有createCookie()
,并在PHPUnit_Extensions_SeleniumTestCase
中列为方法。在文档中,您可以使用以下内容将login
Cookie设置为frank.wilson
五分钟。
$this->createCookie('login=frank.wilson', 'max_age=600');