Я тратил время на освоение методологий написания тестируемого кода, и я наткнулся на отличный пост Миско Хевери, где он четко объясняет, как подходить к зависимостям при построении приложений, используя фабрики дляПример загрузки всех объектов и, таким образом, сокращения строк зависимостей, которые усложняют тестирование.
В своем посте он приводит минимальный, хотя и проницательный пример того, как он устанавливает приложение в Java, бесстыдно цитируемый ниже с большим уважением к чуваку:
// Your main should look like this:
class Main {
public static void main(String…args) {
AppFactory factory = new AppFactory(args);
MyApp app = factory.create();
app.run();
}
}
Затем он заявляет:
Обратите внимание, как код разбит на три фазы.Создать фабрику, создать приложение, запустить приложение.Это делает это проверяемым.Неважно, какое у вас приложение, вы должны следовать этой схемеЧтобы получить синглеты в нужных местах, Фабрика создает только один экземпляр и затем передает этот экземпляр конструкторам всех классов при вызове new.См .: http://misko.hevery.com/2009/03/30/collaborator-vs-the-factory/
Я не очень опытен в Java, но предполагаю, что это может быть имитировано в php, за исключением метода main (), конечно, но откуда берется $ args в контекстевеб-приложение?И инициализация?
Мне было бы очень интересно увидеть минимальный пример тестируемого приложения на PHP или даже ссылки на приложения, которые считались бы эффективными для тестирования.В основном, мне интересна инициализация.Моя цель не копировать-вставлять, а узнать, что выпустили опытные программисты ООП.
Я порылся в коде нескольких популярных библиотек кода: Zend, Symphony, но эти фреймворки не являются исполняемыми приложениями имне кажется «слишком большим, слишком быстрым», чтобы я мог понять ясную картину.Кроме того, в этих рамках были отмечены некоторые недостатки, касающиеся практики тестирования.Небольшой пример, если это возможно (даже если он не работает), поможет мне лучше разобраться в правильной практике компоновки кода ООП при запуске небольшого приложения с нуля.