Компьютерное оборудование

Модульное тестирование абстрактный класс - наилучшей практики

Вопрос «как модульного теста абстрактный класс?» возникает довольно часто. Вы продлить его, а затем заменить абстрактные методы с заглушками и затем протестировать только конкретной частью метода? Или вы развивать абстрактные модульного теста?

Мы считаем, что это вероятно неправильный вопрос, чтобы спросить, когда дело доходит до абстрактных классов. В самом деле, мы считаем, что есть хороший способ избежать проблемы вообще. Когда вы считаете абстрактный базовый класс там действительно являются два стандартных методов приближается это:

Во-первых, где вам нужно специализируются абстрактный объект. В этом случае вы почти наверняка найдете что клиенты должны использовать абстрактный класс, который вы создаете через базовый интерфейс.

Во втором случае вы собираете абстрактный класс попробовать и сократить дублирование. В этом случае вы сразу увидите, что клиенты на самом деле доступ к конкретной версии класса когда они к ним доступ через интерфейс.

Изменения в подход к развитию тестирования программного обеспечения

Если вы принимаете первый метод выше будет уже иметь интерфейс, полностью определен. Именно через процесс виртуальных методов внутри классов, осуществляются недавно производными классами. Почему бы не сделать это интерфейс реальный интерфейс? Вы поменять абстрактный класс для конкретных один. Затем снимок нового интерфейса из конструктора. Все производные классы могут затем использовать реальный интерфейс.

Это упрощает тестирование абстрактного класса. Вы просто использовать макет интерфейса и работать через любых дополнительных реализаций, используя реальный интерфейс.

Для второго метода это уже функционирует как вспомогательный класс. Вы можете изучить функциональность внутри этого абстрактного класса и попробовать и работы его в объекты, которыми вы работаете. Если вы обнаружите, что есть еще материала в пределах этих классов, по окончании, - сделать это вспомогательный класс в конструкторе (не забывайте забирать базового класса), и это конкретное осуществление. Это гораздо проще для тестирования абстрактный.

Это позволяет комбинировать методы 1 и 2, и мы обнаружили, что лучший способ подхода, который должен использовать этот подход для второго метода и затем просто взять Дерево наследования и преобразовать его в шаблон стратегии.

Лучший способ для подразделения тест абстрактных классов является просто уменьшить класса во что-то легче обрабатывать.