Показать сообщение отдельно
Старый 26.12.2008, 16:56
matroskin вне форума Посмотреть профиль Отправить личное сообщение для matroskin Найти все сообщения от matroskin
  № 1  
Ответить с цитированием
matroskin

Регистрация: Dec 2008
Сообщений: 2
По умолчанию Юнит-тестирование флекс приложения

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

сушествует флекс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
собственно вопрос - как "доопределить" в данном случае визуальные компоненты - например дата грид.