Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)