Я посмотрел fpcunit и понял, что он немного не подходит.
Я хочу тестировать реакцию на действия пользователя. То есть, например, пользователь может нажать кнопку - выскочит окно. Изменит ширину окна - контролы сдвинутся, ну и т. д. Для большинства таких тестов можно написать оболочку, а потом из оболочки создавать тесты, и при добавлении новой функциональности тестирующее приложение переписывать не придется (в отличие от функционального тестирования с fpcunit). Как и что писать, я почти придумал, осталось два вопроса:
1) А может, что-то такое уже есть?
Я пока слышал только про TestComplete, но эта штука жутко дорогая (в районе 40 килобаксов что ли, зато умеет тестировать вообще всё).
2) Кому-нибудь еще это интересно?
3) Практический вопрос: есть модуль, в модуле объявлены классы. Пользователь подключает к моему проекту свой файл (по аналогии с fpcunit), и в окне моего приложения повляется что-то типа:
подключенные модули: unit1.pas, unit2.pas, unit3.pas
объявленные классы: TForm1, TForm2, TForm3.
Ну и т. д. Как это можно сделать?
Часть из этого я знаю, но не все. RTTI использовать научился (ну или почти научился).
Например, в fpcunit используется функция RegisterClass. Как она работает? Где бы про нее можно почитать?