2014-12-04 2 views
1

У меня есть плагин для WP, Drupal, SMF, WP и т. Д., И теперь я хочу написать для них единичный тест. Таким образом, есть ли способ написать для них общий единичный тестовый код или, может быть, только базовый код, я не хочу писать единичный тест для каждого плагина отдельно.Как написать общий единичный тестовый код для всех популярных CMS

ответ

0

Не зная, что на самом деле делает ваш плагин, ответ может быть немного мета.

Вы должны использовать polymorphism:

  • Создать interface, который будет содержать все прототипы методов, используемых для тестирования функциональности (то есть, если ваш плагин форматирует пост, вы будете иметь метод в этом интерфейсе называется format_post())
  • для каждого из МРС, создать класс, который будет реализовывать этот интерфейс
  • в файл, который выполняет тесты, создать экземпляр для каждого из классов тестирования CRM (которые реализуют интерфейс, который определяет format_post()) и звоните format_post() на них
+0

Мой плагин - это основной чат. Я только хочу проверить массив настроек и ответ сервера для auth, что является общим для всех плагинов. – Vivek

+0

вы могли бы использовать «базовый класс», чтобы содержать общую функциональность, а не «интерфейс», а ваши дочерние классы - «расширять» эту. Идея одна и та же: родительский класс гарантирует, что дочерние классы содержат код, который вы называете полиморфно ('format_post()' в моем примере, или 'test_settings_array()' в вашем конкретном случае) –

+0

Хорошо. Также существует какой-либо способ создать объект класса phpunit и использовать его внутри моего кода, например, у меня есть функция saveSettings(), где настройки [] генерируются и отправляются на сервер по почте, так что это может быть так: '$ settings = ['setting1' => 'a', 'setting2' => 'b']; $ O-> testSettingsArray ($ настройки); saveSettingsOnServer ($ settings); ' где $ o - объект класса phpunit. – Vivek

Смежные вопросы