Показать сообщение отдельно
Старый 17.03.2008, 21:46
Iv вне форума Посмотреть профиль Отправить личное сообщение для Iv Посетить домашнюю страницу Iv Найти все сообщения от Iv
  № 47  
Iv
 
Аватар для Iv

Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
По умолчанию тест

Перед тем, как начать замену на константы, сделаем один ход, который и впоследствии нам пригодится.
Мы сделаем простой тест.
Задача теста будет проста: сверять результаты работы скрипта с некими образцами.

Для начала создадим методы toString в классах папки draw:

DrawingCommand:
Код AS3:
public function toString() : String {
	throw new Error("com.itechnica.svg.draw.DrawingCommand");
	return "com.itechnica.svg.draw.DrawingCommand";
}
CurveCommand:
Код AS3:
override public function toString() : String {
	return "curveTo(" + controlPoint.x + ", " + controlPoint.y + ", " + end.x + ", " + end.y + ")";
}
FillCommand:
Код AS3:
override public function toString() : String {
	return "beginFill(0x"+colorValue.toString(16)+", "+ alphaValue+")";
}
LineCommand:
Код AS3:
override public function toString() : String {
	return "lineTo(" + targetPoint.x + ", " + targetPoint.y + ")";
}
MoveCommand:
Код AS3:
override public function toString() : String {
	return "moveTo(" + targetPoint.x + ", " + targetPoint.y + ")";
}
StyleCommand:
Код AS3:
override public function toString() : String {
	return "beginFill("+thicknessValue+", 0x"+colorValue.toString(16)+", "+ alphaValue+")";
}
Затем создадим класс Test:
Код AS3:
package {
 
	public class Test {
 
		public static const testArray:Array = [];
 
	}
}
Добавим код, который нам поможет легко получать тестовые строки и тестировать код:

Код AS3:
private function getShapes(iPath:Number):void {
	var drawingCommands:Array = new Array();
	conv = new PathToArray(paths[iPath], drawingCommands);
 
	// TEST as3
	const updateTestArray:Boolean = false;
 
	const testString:String = Test.testArray[iPath];
	const currentString:String = drawingCommands.toString();
 
	if (updateTestArray) {
		trace("[\""+currentString+"\"],");
	} else if (currentString != testString) {
		throw new Error("SVGDisplayInFlash.getShapes test error");
	}
	//  END TEST as3
	................
Компилируем проект и получаем в окне Output длинную строку. Копируем и вставляем ее в массив testArray класса Test.
После этого заменяем значение updateTestArray на false и компилируем еще раз.
Если ошибок не возникло, значит тест пройден успешно.

Нужно четко отдавать себе отчет в том, что тест не идеален. Он отлавливает только те случаи, когда изменяется результирующая строка. Но далеко не факт, что данный пример svg файла использует все теги svg.
Но даже такой тест лучше чем ничего.
__________________
http://realaxy.com


Последний раз редактировалось iNils; 20.12.2010 в 13:33.