Тестування блоку на розробку плагінів


17

Мені потрібно застосувати тестування блоків для одного з моїх плагінів. Нещодавно я переробив це на класи, тому тестування одиниць має бути простіше застосувати зараз.

Які існують ефективні стратегії тестування мого плагіна? Мені потрібен спосіб використання функцій WordPress, використовуваних у плагіні, але мені не потрібен запущений сайт WordPress (лише тестуйте дані на DB AFAIK), правда?

Мені важко зрозуміти, як просто перевірити модуль, а не плагін у контексті сайту. Я міг би використовувати для цього Selenium, але зараз я просто хочу зосередитись на тестуванні модулів класів плагінів, щоб не порушувати їх з кожним оновленням.

Відповіді:


14

Як колишній інженер-програмний інженер, що будує великі типи бізнесу, які приземлилися в інтерактивному агентстві, дозвольте розглянути кілька питань щодо тестування при розробці для Wordpress:

  1. Ваша одинична перевірка повинна перевірити найменшу кількість поведінки, яку може виконувати клас. Кожен клас повинен мати можливість протестувати незалежно від Wordpress. Якщо у вас є залежність від Wordpress, розгляньте можливість створення макетних об'єктів та / або методів у вашому тесті для вирішення цього питання. Зрештою, це змінить те, як ви трохи напишете свій код - але він буде набагато більш перевіреним. Як завжди немає безкоштовного обіду.

  2. Коли ви піднімаєтесь до рівня функціонального тестування, саме тут ви можете перевірити код за допомогою залежностей Wordpress. Тут ви фактично перевірите, чи ваш плагін насправді виконує необхідну послугу.

  3. Залежно від того, що робить ваш плагін - подумайте про тестування на основі Selenium, які перевіряють наявність даних у DOM за допомогою ідентифікаторів. Його досить надійний і набагато менше шансів зламати версію до версії. Знову ж таки, хитрість полягає в тому, щоб випробувати тестування як частину життєвого циклу розробки програмного забезпечення. Великі зміни коду призведе до великих змін у ваших тестах. Вся частина витрат на ведення бізнесу.

Якщо вам потрібна допомога з будь-яким із інструментів для цього - я би радий відповісти, якщо ви відкриєте нове запитання. Я використовую як PHPUnit, так і його розширення селену в роботі, яку я роблю.


1
Ей, Етане, дякую за таку професійну відповідь. Не можу очікувати менше від цієї спільноти :) Я спробую написати модульні тести для моїх класів і створити деякі макетні об’єкти, щоб обходити функції WordPress. Крок 2 - це справді складна частина для мене, оскільки мені знадобиться встановлення WordPress для певного автоматичного тестування, де я можу почати використовувати Selenium пізніше. Почну з PHPUnit і побачу, як це йде. Спасибі!
Фернандо Бріано

Ідеальна відповідь!
rsman


-1

Нещодавно я створив підручник, який бере інформацію від мого googling, щоб показати, як:

  1. Використовуйте ядро ​​Wordpress для одиничних тестів
  2. Сховати застарілі / надіслані сеанси php-попередження
  3. Покажіть, як встановити параметри плагінів у тестах
  4. Для тестування декількох плагінів використовуйте те ж саме wp core, що робить модульні тести

Підручник тут , я сподіваюся, що це допомагає

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.