Модульное тестирование приложения Firemonkey - PullRequest
8 голосов
/ 02 марта 2012

Я пытаюсь использовать DUnit, поставляемый с RAD Studio XE2, для модульного тестирования приложения Firemonkey (C ++).

Проблема в том, что DUnit - это проект VCL, и я не могу включить бланки бланков Firemonkey (например, UfrmMain.h) в проект тестирования.

Даже если я отделяю Visual с помощью логики (MultiTier / MVC), я не могу включить в мои классы никакую библиотеку Firemonkey (иногда это будет полезно, когда есть класс «CustomDatabase», в котором есть объект типа TConnection, доступно только в Firemonkey - конечно только пример).

Тестирование возможно, когда я полностью разделяю код firemonkey и оставляю его в формах, а логика / данные хранятся в классах с чистым кодом C ++.

Итак, этот "гандикап" на самом деле хорош? Заставляет меня работать с MultiTier / MVC? (Эта вещь в C ++ является новой для меня) Или я должен искать альтернативу модульному тестированию, которая также позволяет мне тестировать формы?

(Можете ли вы также порекомендовать мне какой-нибудь проект C ++ на github или пример кода, который разделен упомянутым способом, на который я могу положиться?)

1 Ответ

2 голосов
/ 02 марта 2012

Один из возможных подходов - использовать TextTestRunner вместо GUITestRunner.На самом деле я никогда не пробовал этого, но я думаю, что вполне вероятно, что TextTestRunner не использует никаких блоков VCL, или, по крайней мере, то, что он использует, может быть легко вырезано.И действительно, быстрое сканирование исходного кода предполагает, что это будет работать.

...