| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Test::Unit vs Test::More |
| Автор: sir_nuf_nuf 13.5.2008, 09:23 |
| Привет! Кто какой системой тестирования пользуется ? Начал было использовать Test::Unit - но тут же обнаружил фатальные недостатки: все работает в одном процессе, как следствие: - не всегда тест отлавливает отсутсвие use: Так например если мы не пользуемся возможностью Import, а использует модуль в OO - стиле, то мы можем пропустить отсуствие use. Просто нужный модуль мог быть загружен кем-то и тест проходит - несовместимость с Test::MockObject: Если мы однажда подменяем некий модуль мок - объектом, то далее этот объект проходит через все тесты. Как следствие сам этот модуль мы протестить не можем. Вообщем пожелания к системе тестирования такие: 1) Хорошая и удобная поддержка Mock 2) Хорошая изоляция тест-кейсов друг от друга, минимум аффектов 3) Возможность строить иерархические тесты: т.е. объединять их в группы, более крупные группы и т.п. |
| Автор: sir_nuf_nuf 22.5.2008, 09:38 |
| К чему мы пришли: Универсального решения нет, но очень спасаетм модуль Test::MockModule он умеет делать unmock, т.е. восстанавливать предыдущее состояние пакета. Остановились на использовании Test::Unit, т.к. большинство тестов на нем, да и стараемся писать в ООП.. Вообще решение такое: Наследовались от Test::Unit::TestCase, создали свой тест-кейс в set_up разместили создание наиболее частых моков в tear_down - unmock теперь использование моков почти прозрачно. кроме того в наш класс ТестКейса можно добавлять нужные методы проверки типа assert_arrays |