シナリオの前提条件である、ユーザーにログインするためのコードを作成しようとしています。私は実際にブラウザにログインページにアクセスさせ、フィールドに入力して送信させたくありません。これは、すべてのシナリオで時間の無駄のように思えます。私は、ユーザーをログインさせてセッション変数を設定する舞台裏のコードを使用するだけでよいと考えました。このような...
$fr_user = new User();
$user_id = 0;
$fr_user->loginUser($email,$pwd);
$user_id = $_SESSION['fr_id'];
$user = new User($user_id);
<some checks to make sure the $user_id set properly...>
$this->getSession()->visit($url."?".SID);
ステップ定義内で $_SESSION 変数の var_dump を実行すると、うまく機能していることがわかります。fr_id が設定されています。
アクセスしているWebページにphpセッションIDを送信することさえできましたが、実際のWebページにvar_dumpを実行すると、同じセッションIDであっても、セッションは完全に空白になります。(その間に何かを消去するコードはありません)
それで、私は何が欠けていますか?Behat コードと Selenium ブラウザ ウィンドウで別のセッションが発生していますか? どうすれば彼らにコミュニケーションをとらせることができますか?
ありがとう