0

Environment::get()テストで、拡張するクラスで返されるものを一時的にオーバーライドする方法はありますStaticObjectか?

Lithium の機能トグルプラグインを作成しています。環境に応じてオンとオフの切り替え機能をテストしたい。たとえば、この機能new_uiはステージングではオンにする必要がありますが、本番環境ではオフにする必要があります。

私のテストでは、次のようなことができるようにしたいと考えています。

Features::add('new_ui', array('production' => false, 'staging' => true));
// Magic that makes Environment::get() in the Features class return 'staging'
$this->assertTrue(Feature::check('new_ui'));
// Magic that makes Environment::get() in the Features class return 'production'
$this->assertFalse(Feature::check('new_ui'));

おそらく a を使用して何かを一緒にハックできますMockEnvironmentが、これを達成するためのより純粋なリチウムの方法はありますか?

4

1 に答える 1

0

テストを作成している場合は、モックが正しい方法です。それ以外の場合は、環境の状態を返すために使用される注入可能なクロージャーです。

于 2012-11-19T12:45:24.903 に答える