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)

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