Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Юнит-тестирование флекс приложения (http://www.flasher.ru/forum/showthread.php?t=119659)

matroskin 26.12.2008 16:56

Юнит-тестирование флекс приложения
 
Заранее извиняюсь за некоторый сумбур и возможно еще путаюсь в терминологии.

сушествует флекс3 приложение - SomeApplication.mxml
в котором описано несколько методов
Код:

        <mx:Script>
                <![CDATA[
                public var SomeVar:String = "Some Variable";
               
                public finction Function1
                {
                }
               
                public function Function2
                {
                }
                public function ResultHandler
                {
                }
               
                ]]>
        </mx:Script>

        <mx:DataGrid id="dgrid" dataProvider="{ds}" width="100%" height="100%"
        </mx:DataGrid>
UI реализован через тэги. есть одна важная деталь, ивент хэндлеры прицеплены через тэги
        <mx:DataService id="ds" destination="some-destination"
                result="ResultHandler(event)"/>

Задача - написать юнит тесты на FlexUnit-е для методов Function1 и Function2

Делаю примерно так
public var app : SomeApplication = new SomeApplication();
после этого конструктора можно получить доступ к методам и переменным, объявленым в коде, но графические элементы -
как например datagrid инициализированы не будут. т.е. app.dgrid=null
все бы хорошо, для этого экземпляра класса можно определить их app.dgCompany = new DataGrid();
но , проблема состоит в том, при обращении к дата_сервису отрабатывает хэндлер, описаный в тэгах оригинального приложения и
в нем есть логика обращеная к неиницилизированым переменным - соответственно весь тест падает с ошибками.
удалить эти хендлеры через removeEventListener нельзя, так как они заданы через тэги - вот тут референс
http://livedocs.adobe.com/flex/3/htm...events_05.html
собственно вопрос - как "доопределить" в данном случае визуальные компоненты - например дата грид.

_Smirnoff 27.12.2008 00:25

Немного юзал FlexUnit. Для тестов, лучше засунь эти две функции в отдельный Класс. Напиши для него отдельныйКлассТест наследуемый от TestUnit, что-ли, в котором опиши testFunction1 и для второй. Далее свое поведение реализуй. И тестируй.

matroskin 27.12.2008 11:16

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


Часовой пояс GMT +4, время: 21:28.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.