タイトルの通りですがCakePHP3でPHPunitを使用して自動テストを書いていますがSessionが保持出来ず困っております。
###コード
OrderControllerTest.php
public function testSessionKeep() { $this->get('/orders/index'); $this->assertSession('on', 'works'); //ここは成功します。 $this->get('/orders/index'); //この時点でSessionが引き継がれていない。 $this->assertSession('off', 'works'); //ここで失敗。 }
OrdersController.php
public function index() { if (empty($this->request->session()->read('works'))) { $this->request->session()->write('works', 'on'); } else { $this->request->session()->write('works', 'off'); } }
単純にSessionの「works」という値をon/offするだけのコードです。
下記コマンドをターミナルに流してテストを実行すると2つ目のassertで失敗します。
vendor/bin/phpunit --filter testSessionKeep tests/TestCase/Controller/OrdersControllerTest.php
Sessionの特性上(=ブラウザのCOOKIEでID管理している)これは不可能な事なのでしょうか?
どなたかお分かりになる方いらっしゃいましたらアドバイス頂けますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/28 01:48