Множественное определение тестовых приспособлений в тесте Google - PullRequest
0 голосов
/ 28 февраля 2012

У меня есть набор общих модульных тестов в файле .hpp, который должен включать более одного тестового файла.

Но он получает несколько копий одного и того же файла и общие жалобы файла .hpp о множественном определении тестовых приспособлений.

Нужна помощь, как подойти к этому.

1 Ответ

1 голос
/ 29 февраля 2012

Вы должны иметь возможность отделить объявления класса gtest от определений обычным способом, используя файлы .hpp и .cpp.

Таким образом, вместо определения тестовых функций и приборов в заголовке, переместите их в исходный файл, который #include содержит заголовок. Так, например, если у вас есть test.hpp как:

#include "gtest/gtest.h"

class MyTest : public ::testing::Test {
 protected:
  void TestFunction(int i) {
    ASSERT_GT(10, i);
  }
};

TEST_F(MyTest, first_test) {
  ASSERT_NE(1, 2);
  TestFunction(9);
}

изменить test.hpp на:

#include "gtest/gtest.h"

class MyTest : public ::testing::Test {
 protected:
  void TestFunction(int i);
};

и добавьте test.cpp:

#include "test.hpp"

void MyTest::TestFunction(int i) {
  ASSERT_GT(10, i);
}

TEST_F(MyTest, first_test) {
  ASSERT_NE(1, 2);
  TestFunction(9);
}

Если вы включаете один и тот же заголовок теста в нескольких местах, вы действительно ищете типизированные тесты или тесты с параметризацией типа? Подробнее см. http://code.google.com/p/googletest/wiki/V1_6_AdvancedGuide#Typed_Tests.

...