2016-02-22 89 views
0

我有一個簡單的場景。如何在同一個Behat場景下登錄Symfony中的不同用戶

  • 由於Bob登錄
  • 而在
  • 鮑勃編輯第一條,並將其保存愛麗絲日誌。
  • Alice編輯第1條並保存但應該看到Bob已經 確實發生了變化。
  • 愛麗絲應該重新加載 - >愛麗絲看到的變化...

榮譽提名:How to authenticate once in Behat environmentHow to simulate two users

我的問題是我必須在不同的會話中對用戶進行身份驗證,但內核始終返回相同的會話名稱/ ID。我不知道如何在根據Mink會話名稱命名的會話中對用戶進行身份驗證?

回答

1

您可以嘗試使用貂皮功能並在behat環境中創建幾個會話。

所以,從一開始你有一個默認的會話:

$this->getSession(); 

你還可以用精確的驅動程序註冊新的會話。

所需驅動程序的新實例。 F.E. GoutteDriver。

$goutteDriver = new GoutteDriver(); 
$sess = new \Behat\Mink\Session($goutteDriver); 
$this->getMink()->registerSession('newSession', $sess); 

,然後用它在你的步驟:

$this->getSession('newSession')->getPage(); 

但新會話將不會有從behat.yml任何PARAMS。所以要注意這一點。您可以從

$this->getMinkParameters(); 
+0

我已經試過這讓所有的參數,可以,但是當我嘗試驗證他們被分配到PHPSSID用戶,而不是FOO例如。 – stevenll

+1

因此,您默認使用Symfony2會話,對吧?所以你正在用symfony2驅動創建新的水貂會話?如果它沒有幫助 - 那麼你需要玩弄$ this-> getContainer() - > get('session');它有很多獲取和設置方法。我會盡力調查並回復你。 –

相關問題