質問編集履歴

2

.

2022/07/15 07:45

投稿

teteoodhi
teteoodhi

スコア3

test CHANGED
@@ -1 +1 @@
1
- GolangのEchoにて、セッションに関するテストができない
1
+ .test Golangtest
test CHANGED
@@ -1,50 +1 @@
1
- ### 前提
2
-
3
- GolangのEchoを使っています。
4
- セッションの絡むテストコードを書きたいのですが、echo.Contextにセッションが保存できずで困っています。
5
- ソースとしては大体下記のようになっています。
6
-
7
-
8
-
9
- ```
10
- import{
11
- "github.com/gorilla/sessions"
12
- "github.com/labstack/echo-contrib/session"
13
- "github.com/labstack/echo/v4"
14
- }
15
- ```
16
- echoServer := echo.New()
17
- store := sessions.NewCookieStore([]byte("secret"))
18
-
19
- req := httptest.NewRequest(http.MethodGet, "/", nil)
20
- req.Header.Set("Content-Type", "text/html")
21
-
22
- rec := httptest.NewRecorder()
23
-
24
- sess, _ := store.New(req, "session")
25
- sess.Options = &sessions.Options{
26
- Path: "/",
27
- MaxAge: 80000,
28
- HttpOnly: false,
29
- }
30
-
31
- // ここでセッションがセットされている想定
32
- sess.Save(req, rec)
33
-
34
- c := echoServer.NewContext(req, rec)
35
-
36
- // 一応念の為こっちでもセット
37
- sess.Save(c.Request(), c.Response())
38
-
39
- c.SetPath("/")
40
-
41
- // ここで取得すると、s_testはnilとなっている↓
42
- s_test, _ := session.Get("session", cco)
1
+ ..test Golangtest.test Golangtest.test Golangtest
43
- fmt.Print(s_test)
44
-
45
- コメントにも書いてあるんですが、 sess.Saveでセットしているかと思うのですが、その後 session.Get で取得した際にnilが帰ってきてしまう状態です。
46
- 検索しても、Goのセッション保存してのテストに関する結果がものすごく少なくて困っています。
47
- よろしくお願いします。
48
- 追記
49
- ↓こちらに、コードを載せてみました。Runで動作確認が可能です。
50
- https://go.dev/play/p/m7FR6ARljNA

1

コードを追記

2022/07/15 02:25

投稿

teteoodhi
teteoodhi

スコア3

test CHANGED
File without changes
test CHANGED
@@ -45,3 +45,6 @@
45
45
  コメントにも書いてあるんですが、 sess.Saveでセットしているかと思うのですが、その後 session.Get で取得した際にnilが帰ってきてしまう状態です。
46
46
  検索しても、Goのセッション保存してのテストに関する結果がものすごく少なくて困っています。
47
47
  よろしくお願いします。
48
+ 追記
49
+ ↓こちらに、コードを載せてみました。Runで動作確認が可能です。
50
+ https://go.dev/play/p/m7FR6ARljNA