Comments 4
По поводу преобразования экранных координат в координаты чертежа: в какой версии nanoCAD API появилось это преобразование? В ObjectARX он появился как минимум в 2009 версии. Или проблема всплыла только сейчас?
А за статью спасибо! Ждем еще статей.
Особенно на тему совмещения Multicad и ObjectARX :)
Оффтоп
В ObjectARX это следующие команды
и обратно
public unsafe Point3d PointToWorld(
Point pt
);
и обратно
public unsafe Point PointToScreen(
Point3d pt,
int viewportNumber
);
А за статью спасибо! Ждем еще статей.
Особенно на тему совмещения Multicad и ObjectARX :)
0
Преобразование появилось в nanoCAD 4.5.
Аналогичное преобразование в ObjectARX доступно только из модуля, загруженного в AutoCAD, будь то .NET или C++. Нам же нужно было добраться до этого преобразования снаружи, из внешней системы автоматизированного тестирования. Поэтому мы и расширили COM модель.
Аналогичное преобразование в ObjectARX доступно только из модуля, загруженного в AutoCAD, будь то .NET или C++. Нам же нужно было добраться до этого преобразования снаружи, из внешней системы автоматизированного тестирования. Поэтому мы и расширили COM модель.
+1
Не совсем понимаю почему не замокать PromptAngleOptions если хотите отвязаться от UI.
0
Мы не пытаемся отвязаться от UI, нам как раз интересно проверить полную цепочку от двух WM_LBUTTONDOWN до возврата угла из GetPoint().
Применительно к данной задаче, действие в UI присходит в GetAngle(), который мы тестируем. PromptAngleOptions лишь содержит входные параметры.
Если бы мы тестировали какую-либо команду, использующую GetAngle(), скажем, команду поворота выбранных объектов, то GetAngle() можно было бы замокать. Но, тогда и процесс запуска команды стоило бы отключить от UI, и предпросмотр результата поворота, и далее до тех пор, пока мок не станет похож на спецсборку nanoCAD-а. Поэтому мы и пытаемся, по возможности, использовать существующие механизмы. UI тестировать через UI, работу с базой данных чертежа — без UI.
Применительно к данной задаче, действие в UI присходит в GetAngle(), который мы тестируем. PromptAngleOptions лишь содержит входные параметры.
Если бы мы тестировали какую-либо команду, использующую GetAngle(), скажем, команду поворота выбранных объектов, то GetAngle() можно было бы замокать. Но, тогда и процесс запуска команды стоило бы отключить от UI, и предпросмотр результата поворота, и далее до тех пор, пока мок не станет похож на спецсборку nanoCAD-а. Поэтому мы и пытаемся, по возможности, использовать существующие механизмы. UI тестировать через UI, работу с базой данных чертежа — без UI.
0
Only those users with full accounts are able to leave comments. Log in, please.
Универсальный автотест, или как мы автоматизировали ручные тесты API в nanoCAD