Я нашел два способа настроить это: либо скомпилировать всю платформу GoogleTest непосредственно в каждом из тестовых проектов, либо создать библиотечный проект для его хранения. Использование библиотеки ускоряет сборку, но вам необходимо убедиться, что параметры компиляции / ссылки одинаковы для библиотеки и тестовых проектов.
Компиляция GoogleTest непосредственно в тестовом проекте
- Создайте новый проект из шаблона Google Test . Инструкции здесь при необходимости.
- Удалите Microsoft.googletest.v140.windesktop.msvcstl.stati c .rt-stati c NuGet.
- Установите последний пакет gmock NuGet от Google (в настоящее время v1.10.0).
- Добавьте файл
gtest_main.cc
в проект. Это должно быть в ..\packages\gmock.1.10.0\lib\native\src\gtest\src\
На этом этапе проект должен выглядеть примерно так (если это не так, попробуйте Разгрузка и Перезагрузка проект):
Последний шаг настройки - отключение использования предварительно скомпилированных заголовков для трех файлов Google .cc
( Важно: обратите внимание и на пустые поля).
Использование GoogleTest в Stati c Библиотечном проекте
- Создайте новый проект из шаблона Stati c Library (C ++) . Инструкции здесь при необходимости.
- Удалить все сгенерированные
.h
/ .cpp
файлы (pch.h
, pch.cpp
, framework.h
, <ProjectName>.cpp
, et c) - Установите последний пакет gmock NuGet от Google (в настоящее время v1.10.0).
- Отключите использование предварительно скомпилированных заголовков для проекта библиотеки (см. относящиеся к пи c выше).
- Создайте новый проект из шаблона Google Test . Инструкции здесь если необходимо.
- Удалите Microsoft.googletest.v140.windesktop.msvcstl.stati c .rt-stati c NuGet.
- Добавить файл
gtest_main.cc
в проект. Оно должно быть в ..\packages\gmock.1.10.0\lib\native\src\gtest\src\
- Отключить использование предварительно скомпилированных заголовков для
gtest_main.cc
(см. Соответствующий pi c выше). - Добавить проект библиотеки в Ссылки проекта Project тестового проекта.
- Добавить
..\packages\gmock.1.10.0\lib\native\include\
в тестовый проект Включить каталоги в Каталоги VC ++
Структура решения теперь должна выглядеть примерно так:
Написание тестов
В любом случае, теперь вы готовы начать писать тесты с помощью GoogleMock. Добавьте add #include "gmock/gmock.h"
в файл pch.h
:
//
// pch.h
// Header for standard system include files.
//
#pragma once
#include "gtest/gtest.h"
#include "gmock/gmock.h"
Откройте сгенерированный файл Test.cpp
и попробуйте его.
#include "pch.h"
class MockTest {
public:
MOCK_METHOD(void, SomeMethod, ());
};
TEST(TestCaseName, TestName) {
MockTest mock;
EXPECT_CALL(mock, SomeMethod);
mock.SomeMethod();
EXPECT_EQ(1, 1);
EXPECT_TRUE(true);
}