2013-06-05 37 views
1

我試圖在測試之前設置cookie,但由於某些原因,他們沒有設置。PHPUnit Selenium 2擴展設置Cookie

這裏是我的示例代碼:

class WebTest extends PHPUnit_Extensions_Selenium2TestCase 
{ 
    protected function setUp() 
    { 
     $this->setBrowser('firefox'); 
     $this->setBrowserUrl('http://dev.local/'); 
    } 

    public function testTitle() 
    { 
     $session = $this->prepareSession(); 

     $session->cookie()->remove('language_version'); 
     $session->cookie()->add('language_version', 'en')->set(); 
     $this->url('/'); 

     $this->assertEquals('Title in English', $this->title()); 
    } 
} 

有誰知道怎麼辦呢?任何幫助不勝感激。

回答

1

我已經硒文檔中找到了答案,我的問題:

如果你想你開始與網站進行互動前,您的主頁是大到預先設定的cookies /花上一段時間來加載一個替代方案是要在網站上找到一個較小的頁面,通常是404頁小(http://example.com/some404page

現在我的測試是這個樣子:

$this->url('/unit_tests.php'); 
$this->cookie()->remove('language_version'); 
$this->cookie()->add('language_version', 'en')->set(); 

$this->url('/'); 
$this->assertEquals('Title in English', $this->title()); 

/unit_tests.php是一個空的PHP文件,可以讓我最初設置頁面的cookie。

0

該cookie不應該存在,因此刪除將失敗。 Selenium在測試套件的每次運行中運行瀏覽器,並創建一個新的空白配置文件。 。

+0

刪除不存在的cookie實際上不會引發任何異常。 – Ralphz

+0

但它可能會默默地忽略其餘的代碼。嘗試在刪除Cookie後立即添加日誌或警報,以查看它是否正在運行以下代碼。 – freegnu