Написание теста Google для класса, который нуждается в дескрипторе Windows - PullRequest
0 голосов
/ 03 октября 2019

У меня есть класс, чей метод init нуждается в дескрипторе

bool MyClass::init(void* pWnd, void* pDC)
{
    /*
        HDC m_hDC{ nullptr };
        HWND m_hWnd{ nullptr };*/

    if (!m_hDC) // if it was not initialized
    {
        m_hWnd = reinterpret_cast<HWND>(pWnd);
        m_hDC = GetDC(m_hWnd);
    }

    assert(m_hWnd == reinterpret_cast<HWND>(pWnd));
    assert(m_hDC != reinterpret_cast<HDC>(pDC));

    if (!m_hDC) // if the initialization failed
    {
       return false;    // invalid parameters
    }

    .....
}

Я пишу тест Google для этого класса. Есть ли способ сменить дескриптор окна в тесте Google или создать фиктивный дескриптор окна?

1 Ответ

0 голосов
/ 03 октября 2019

Это может быть неправильный подход, но может помочь кому-то. К счастью, у библиотеки, которую я тестирую, была GLFW . Итак, я создал окно, используя это.

Вот код,

glfwInit();
// Set all the required options for GLFW
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);

// Create a GLFWwindow object that we can use for GLFW's functions
GLFWwindow* window = glfwCreateWindow(100, 100, "TestWindow", nullptr, nullptr);

HWND val = glfwGetWin32Window(window);
obj.init(val, nullptr);
...