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, фактически не запуская его, чтобы мы могли выполнить его модульное тестирование?