Тестируемый код - небольшой пример приложения - PullRequest
7 голосов
/ 12 мая 2011

Я тратил время на освоение методологий написания тестируемого кода, и я наткнулся на отличный пост Миско Хевери, где он четко объясняет, как подходить к зависимостям при построении приложений, используя фабрики дляПример загрузки всех объектов и, таким образом, сокращения строк зависимостей, которые усложняют тестирование.

В своем посте он приводит минимальный, хотя и проницательный пример того, как он устанавливает приложение в 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, но эти фреймворки не являются исполняемыми приложениями имне кажется «слишком большим, слишком быстрым», чтобы я мог понять ясную картину.Кроме того, в этих рамках были отмечены некоторые недостатки, касающиеся практики тестирования.Небольшой пример, если это возможно (даже если он не работает), поможет мне лучше разобраться в правильной практике компоновки кода ООП при запуске небольшого приложения с нуля.

1 Ответ

2 голосов
/ 12 мая 2011

Себастьян Бергманн, автор PHPUnit, имеет пример приложения для иллюстрации того, что вы запрашиваете на GitHub:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...