рассмотрим следующий код как псевдокод в стиле PHP, чтобы понять мою точку зрения.
class C extends PHPUnit_Framework_TestCase
{
public function m1()
{
$v = $this->m2();
if($v == "x")
{
throw new Exception();
}
}
protected function m2()
{
[...];
return $v;
}
}
Теперь я хочу добавить тест, который утверждает, что исключение выдается, если m2 () возвращает "x".
Как мне это смоделировать?
Я думал об использовании Reflection для переопределения метода во время выполнения, но кажется, что Reflection не предлагает такой функциональности, и мне пришлось бы прибегнуть кэкспериментальные расширения, такие как classkit или runkit.Это будет путь?
В этом случае я мог бы расширить класс и переопределить m2 (), но куда я тогда поместил бы этот производный класс?В том же файле, что и в тесте?
Последнее решение больше не будет работать, если я выберу m2 как частное.
Я совершенно уверен, что есть лучшая практика для решенияс этой ситуацией.