PHPUnit を使用して、テスト用のモック クラスを作成しています。
class Item extends Object {
protected static $_cache;
}
私はモックがこのようなことをすることを確信しています(私が間違っている場合は修正してください):
class Mock_Item_randomstring extends Item {
}
myItem
のキャッシュが読み込まれると、渡されたオブジェクトが のインスタンスであることを確認しますItem
。モックは を明示的に定義$_cache
していないため、インスタンス タイプのチェックに失敗します。
PHP は、実際にはリフレクション関数をまったく文書化していません。クラスがなるように、事後に静的変数を設定する方法はありますか
class Mock_Item_randomstring extends Item {
protected static $_cache;
}
編集
リフレクション メソッドをいじってみたところ、さまざまな問題に遭遇しました。ここに私が混乱しているものがあります:
$mock = $this->getMock( 'Item', array( '_func' ), array(
$argument1, $argument2
));
$mock = new ReflectionClass($mock);
$mock->staticExpects( $this->exactly(2) )->method( '_func' );
私は、リフレクションがクラス全体をコピーすると仮定していました。次のエラーが表示されます。
Call to undefined method ReflectionClass::staticExpects()