gonでときおりcontrollerのテストが失敗する問題への対応こんにちは、Misoca開発チームのmzpです。先週は友人の家に泊り込んでWWDCのライブストリームを見ていました。MisocaではRailsとJavaScriptでの値の共有にgonを利用していますが、ときおりcontrollerのテストが失敗するという奇妙な現象に遭遇しました。今日は、その話について書きたいと思います。呼べば回避できるgonとはgonはRailsとJavaScriptで値を共有するためのgemです。"admin"のように設定した値を取得できます。app/views/layouts/application.html.erb)に以下のようなコードを書く必要があります。オブジェクトへの値の設定を行なっています。%>viewとcontrollerの間での値の共有は、RequestStoreというgemで実現されています。これはグローバル変数のように、どこからでもアクセスできる領域を実現するためのgemです。storeに値を保持することで、controllerとviewの間でデータのやりとりをしています。利用したスレッドローカルなデータとほぼ同じです。snipただし、同一スレッド間別リクエストで値が保持されないようにRackのミドルウェアにてデータのクリアをしています。endendなにが問題になるかcontrollerのテストはRackミドルウェアを経由していないため、予期したタイミングでデータがクリアされません。そのため、以下のようなコードはproduction/development環境で動作する限りは問題ないですが、controllerのテストは失敗します。skipsこの例は比較的わかりやすいですが、実際はgonを使っているアクションと使っていないアクションがまざっていたり、テストケースの実行順をランダムにしていたりするので、たまに失敗する一見不可解な事象が発生します。すれば問題を回避できます。endendこれで、テストケースの実行順に依存して成功したり、失敗したりするようなことはなくなりました。Misoca開発チームのめろたん(@renyamizuno_)です...2016-08-26読みやすいRSpecを書くためのTipsこんにちは、黒曜(@kokuyouwind)です。インターンのhmryuです。プレビュー(言語・組み込みライブラリ編)Misoca開発チームのeitoballです。[PayPal編]皆さん、こんにちは。弥生は第23回Quesに協賛します。引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。