Project

General

Profile

Bug(バグ) #3852

機能テスト実行時にopBrowserによる各リクエスト間でMemberConfigのキャッシュが意図せず引き継がれてしまう

Added by Youichi Kimura almost 9 years ago. Updated over 7 years ago.

Status:
Won't fix(対応せず)
Priority:
Normal(通常)
Target version:
Start date:
2015-11-05
Due date:
% Done:

0%

3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Unknown (未調査)

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

Copied to OpenPNE 3 - Backport(バックポート) #3980: 機能テスト実行時にopBrowserによる各リクエスト間でMemberConfigのキャッシュが意図せず引き継がれてしまう Fixed(完了) 2015-11-05
Copied to OpenPNE 3 - Backport(バックポート) #3981: 機能テスト実行時にopBrowserによる各リクエスト間でMemberConfigのキャッシュが意図せず引き継がれてしまう Fixed(完了) 2015-11-05

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 にて対応済みであったため、対応せずとします。

Also available in: Atom PDF