wxWidgets: как инициализировать wxApp без использования макросов и без входа в основной цикл приложения?

Нам нужно написать модульные тесты дляWxWidgets использование приложенияGoogle Test Framework, Проблема в том, чтоWxWidgets использует макросIMPLEMENT_APP (MyApp) инициализировать и войти в основной цикл приложения. Этот макрос создает несколько функций, включаяint main (), Тестовая структура Google также использует определения макросов для каждого теста.

Одна из проблем заключается в том, что невозможно вызвать макрос wxWidgets из тестового макроса, потому что первый создает функции. Итак, мы обнаружили, что можем заменить макрос следующим кодом:

wxApp* pApp = new MyApp(); 
wxApp::SetInstance(pApp);
wxEntry(argc, argv);

Это хорошая замена, но вызов wxEntry () входит в исходный цикл приложения. Если мы не вызываем wxEntry (), некоторые части приложения все еще не инициализированы.

Вопрос в том, как инициализировать все необходимое для запуска wxApp, фактически не запуская его, чтобы мы могли выполнить его модульное тестирование?

Ответы на вопрос(6)

Ваш ответ на вопрос