ユニットテストでセッションを意図した通りにできず困っています。
前提・実現したいこと
・ブラウザからアクセスすると正常に動作する。
・テストからセッション、リクエストを渡してブラウザをおなじ動作になることを確認したい。
・メソッド単位でテストがしたい。
テストは以下の流れで考えています。
1.ユニットテストでセッションを追加
2.処理するメソッドにセッション付きで引数を渡す
3.結果を受け取り判定する
発生している問題・エラーメッセージ
メソッドに渡す方法が不明
こちらの内容とアドバイスいただきましたが、
具体的な使い方がわかっていません。
https://readouble.com/laravel/5.5/ja/http-tests.html
結果: 1) Tests\Unit\getHogeTest::testController BadMethodCallException: Method Illuminate\Http\Response::input does not exist. // $request->input('hoge1', 0);の部分が動かないため
該当のソースコード
php
1モデル 2class Hoge 3{ 4 public function getHogeList(Request $request) 5 { 6 $hoge1 = $request->input('hoge1', 0); 7 $hoge2 = $request->input('hoge2', 0); 8 // Code..... 9 } 10}
テスト内容 public function testHogeSession() { $request = new Request(); //リクエスト作成 $request->merge('hoge','hoge') $response = $this->withSession(['hohe','hoge']); //セッション追加 // どのタイミングでリクエストにセッションを追加する? $hoge = new Hoge(); //インスタンス作成 $result = $hoge->getHogeList($request); //空のインスタンスなのでエラー }
ユニットテスト自体は初めてです。
見苦し書き方あるかと思いますがご確認くださいませ。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/28 07:58 編集
退会済みユーザー
2019/11/28 07:58
2019/11/28 08:18