Архитектура среды тестирования на основе моделей


Пример построения теста - часть 7


<aop:config> <aop:aspect id="accountContractAspect" ref="accountContractExecutor"> <aop:pointcut id="accoutTransfer" expression="execution(* mbtest.tests.Account.transfer(..))"/> <aop:around pointcut-ref="accoutTransfer" method="execute"/> </aop:aspect>

<aop:aspect id="accountCoverageAspect" ref="accountCoverageExecutor"> <aop:pointcut id="accoutCTransfer" expression="execution(* mbtest.tests.Account.transfer(..))"/> <aop:around pointcut-ref="accoutCTransfer" method="execute"/> </aop:aspect>

<aop:aspect id="accountSpyAspect" ref="accountSpyExecutor"> <aop:pointcut id="accoutSTransfer" expression="execution(* mbtest.tests.Account.transfer(..))"/> <aop:around pointcut-ref="accoutSTransfer" method="execute"/> </aop:aspect> </aop:config> </beans>

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

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




Начало  Назад  Вперед



Книжный магазин