操作
Backport(バックポート) #3980
完了機能テスト実行時にopBrowserによる各リクエスト間でMemberConfigのキャッシュが意図せず引き継がれてしまう
開始日:
2015-11-05
期日:
進捗率:
100%
予定工数:
説明
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
の中身を空にする
Chiharu Nakajima さんが8年以上前に更新
- コピー元 Bug(バグ) #3852: 機能テスト実行時にopBrowserによる各リクエスト間でMemberConfigのキャッシュが意図せず引き継がれてしまう を追加
Chiharu Nakajima さんが8年以上前に更新
- ステータス を New(新規) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
プルリクエストしました。
https://github.com/openpne/OpenPNE3/pull/354
Shinichi Urabe さんが約8年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
操作