Я использую PHP 5.3 и SimpleTest, но более общие ответы приветствуются. Каждый плагин будет классом, который расширяет абстрактный класс ... как мне проверить, что этот интерфейс работает должным образом? Нужно ли создавать несколько плагинов и тестировать их? Или есть более приятный способ?
В качестве примера представьте, что вы пишете что-то, что представляет деньги. Пользователи могут расширить это с различными классами валюты.
реферат класса Money
{
приватный статический символ $;
приватная статическая $ num_decimals;
публичная функция __construct ($ amount) {...}
публичная функция __toString () {...}
}
Тогда плагин будет выглядеть так:
класс GBPound расширяет деньги
{
приватная статическая $ symbol = "£";
приватная статическая $ num_decimals = 2;
}
Возможно, я мог бы эмулировать множественное наследование, расширяя класс UnitTest и класс money, но это может привести к путанице!
Это так сложно, потому что модульное тестирование - это тестирование интерфейса, но сам класс является интерфейсом плагина.