Я отчаянно пытаюсь провести модульное тестирование модуля для системы магазинов.Эта система магазинов использует статические методы, которые я должен вызывать в своих функциях, которые я хочу протестировать.
public function toTest() {
$value = \Context::getData();
return $value;
}
Теперь, как я могу выполнить модульное тестирование этой функции во время проверки этого статического вызова?Я попытался использовать AspectMock, но это не работает, потому что ему, очевидно, нужен доступ к исходному классу \ Context, который недоступен, поскольку это внешняя система.Я также пытался использовать class_alias для создания своего собственного класса Context, но это тоже не работает, потому что мне нужны разные выходные данные Context в зависимости от того, какую функцию я тестирую.И установка class_alias несколько раз для разных тестов не работает, потому что один и тот же класс не может быть объявлен несколько раз, а @runTestsInSeparateProcesses не дали ожидаемого эффекта.
Редактировать: ни один из дубликатов не дал жизнеспособного решения для моегоситуация, поэтому я не думаю, что это дубликат.Не имея доступа к коду системы магазинов и, особенно, с таким сложным в обслуживании кодом, PHP не облегчает модульное тестирование.Также найденное мной решение должно помочь другим с подобными настройками.