質問編集履歴

1

例が悪かったので補足

2017/08/09 03:12

投稿

yoshiky
yoshiky

スコア105

test CHANGED
File without changes
test CHANGED
@@ -51,3 +51,51 @@
51
51
  ```
52
52
 
53
53
  上記はイメージですが、外部からのパラメタに依らずに生成される変数@hogeに、任意の値を代入する事は可能なのでしょうか。よろしくお願いいたします。
54
+
55
+
56
+
57
+ #### 追記
58
+
59
+ ※例が不適切で知りたいことと異なっていたので、もう少し実際に即した形を提示します※
60
+
61
+
62
+
63
+ 上記例では@hogeのようにインスタンス変数にしてますが、実際はcookieの値です。
64
+
65
+ [要件]
66
+
67
+ - あるcookieの値を暗号化して保存している
68
+
69
+ - 取得時に復号化して取り出している
70
+
71
+ - この復号化に失敗した場合nilが返るので、例外判定したい
72
+
73
+ ```ruby
74
+
75
+
76
+
77
+ def hoge
78
+
79
+ get_cookie # before_actionなどで実行されるものと想定
80
+
81
+ ...
82
+
83
+ end
84
+
85
+
86
+
87
+ private
88
+
89
+ def get_cookie
90
+
91
+ cookie_hoge = DummyUtil.decrypt(cookie[:hoge]) #不正な値で復号化に失敗するとnilが返る
92
+
93
+ raise 'unexpected cookie value' if cookie_hoge.nil?
94
+
95
+ ...
96
+
97
+ end
98
+
99
+ ```
100
+
101
+ もはやprivateメソッド内の処理なのでmodelなりcontrollerの単体テストで確認すべきかも知れませんが、「cookieの復号化に失敗した場合はエラー画面に遷移すること」というfeatureテストを書く方法があれば、ご教示頂きたいです。よろしくお願いいたします。