Bug(バグ) #3852
機能テスト実行時にopBrowserによる各リクエスト間でMemberConfigのキャッシュが意図せず引き継がれてしまう
0%
Description
Overview (現象)¶
MemberConfigTable クラスには MemberConfig をキャッシュするための MemberConfigTable::$results
が用意されおり、多くのコードはこのキャッシュがリクエストごとに初期化される前提で実装されているが、機能テスト時には MemberConfigTable::$results
のキャッシュがリクエストを跨いで引き継がれてしまうため、テスト時のみ発生する意図しない動作の原因となっている。
Causes (原因)¶
MemberConfigTable クラスには MemberConfig をキャッシュするための MemberConfigTable::$results
が用意されているが、通常のブラウザからのアクセスによって OpenPNE が動作する場合はリクエスト毎にこのキャッシュは破棄される。
しかし機能テストで使用する opBrowser では、リクエストごとに sfContext の初期化は行うものの静的変数の初期化は行われないため MemberConfigTable のインスタンス(Doctrine_Core::getTable()
によって生成されるシングルトン)は残ったままとなり、MemberConfigTable::$results
も初期化されない。
Way to fix (修正内容)¶
opBrowser がリクエストを実行する度(sfContext を生成するタイミング)に MemberConfigTable::$results
の中身を空にする
Related issues
History
#1 Updated by Youichi Kimura almost 9 years ago
- Status changed from Accepted(着手) to Pending Review(レビュー待ち)
- % Done changed from 0 to 50
当チケットに対する Pull Request を送信しました。
https://github.com/openpne/OpenPNE3/pull/264
#2 Updated by Youichi Kimura over 8 years ago
- Description updated (diff)
#3 Updated by Chiharu Nakajima about 8 years ago
- Copied to Backport(バックポート) #3980: 機能テスト実行時にopBrowserによる各リクエスト間でMemberConfigのキャッシュが意図せず引き継がれてしまう added
#4 Updated by Chiharu Nakajima about 8 years ago
- Copied to Backport(バックポート) #3981: 機能テスト実行時にopBrowserによる各リクエスト間でMemberConfigのキャッシュが意図せず引き継がれてしまう added
#5 Updated by Shinichi Urabe almost 8 years ago
- Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
- % Done changed from 50 to 70
#7 Updated by Youichi Kimura over 7 years ago
このチケットの修正が済んでいないと動作しないテストコードの例を書きました
https://gist.github.com/upsilon/e6bea4d13d5761e942bb5191200ec6ee
#8 Updated by kaoru n over 7 years ago
- Status changed from Pending Testing(テスト待ち) to Won't fix(対応せず)
- Target version changed from OpenPNE 3.9.0-old to OpenPNE 3.9.0
- % Done changed from 70 to 0
OpenPNE 3.8.23 にて対応済みであったため、対応せずとします。