で追加されたすべてのスクリプトを削除するなど、すべてのビュー ヘルパーの状態をリセットする方法はありheadScript()
ますか? テストごとに新しいコントローラーとビューを作成しているにもかかわらず、1 つの単体テストで追加されたスクリプトとメタ タグが次の単体テストで表示されます。これは、偽陽性と偽陰性を引き起こしています。
1814 次
2 に答える
4
これらのコンテナの抽象クラス( )を見ると、 ArrayObjectZend_View_Helper_Placeholder_Container_Abstract
が拡張されていることがわかります。その配列の値を、設定した値をラップする配列に置き換えるときはいつでも。を実行すると、古い値を取得し、新しい値を配列にシフト解除します。したがって、理論的には、exchangeArrayメソッドを使用して、空白の配列(完全にテストされていない)を渡すことで値をクリアできます。set
append
$this->view->headScript()->exchangeArray(array());
于 2011-02-22T21:47:10.040 に答える
3
Marcin のコメントは、私たちのテスト フレームワークの問題の根本的な原因に私を導きました。それは、レジストリのスナップショットを取得するコードが実行される前に、プレースホルダ レジストリが Zend レジストリに追加されていたことです。したがって、すべての新しいレジストリ オブジェクトを削除するコードを実行すると、プレースホルダー レジストリは削除されなくなりました。
すべてのプレースホルダー ベースのビュー ヘルパーの状態をリセットするには、次を使用します。
$registry = Zend_Registry::getInstance();
unset($registry['Zend_View_Helper_Placeholder_Registry']);
于 2011-02-22T22:46:32.910 に答える