В тесте есть ли способ временно переопределить то, что возвращает 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'));
Я мог бы, вероятно, что-то взломать, используя MockEnvironment
, но есть ли более чистый способ лития для достижения этого?