質問編集履歴
2
.
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Golang
|
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
|
-
|
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
コードを追記
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
|