2015-08-04 2 views
1

Я использую Google Test для модульного тестирования моего проекта на C++. В руководстве по началу работы написано:googletest Метод SetUp не называется

При необходимости напишите конструктор по умолчанию или функцию SetUp() для подготовки объектов к каждому тесту. Распространенная ошибка заключается в том, чтобы называть SetUp() как Setup() небольшим u - не позволяйте этому случиться с вами.

SetUp() написано правильно, но я все еще не могу получить SetUp для работы. Есть идеи?

#include "gtest/gtest.h" 

class SampleTest : public ::testing::Test { 
protected: 
    virtual void SetUp() { std::cout << "SetUp called." << std::endl; } 
}; 

TEST(SampleTest, OneEqualsOne) { 
    int one = 1; 
    ASSERT_EQ(1, one); 
} 

int main(int argc, char **argv) { 
    ::testing::InitGoogleTest(&argc, argv); 
    return RUN_ALL_TESTS(); 
} 

g++ -g -Wno-deprecated -I gtest/include SampleTest.cpp gtest/libgtest.a -o SampleTest

Выход:

[==========] Running 1 test from 1 test case. 
[----------] Global test environment set-up. 
[----------] 1 test from SampleTest 
[ RUN  ] SampleTest.OneEqualsOne 
[  OK ] SampleTest.OneEqualsOne (1 ms) 
[----------] 1 test from SampleTest (1 ms total) 

[----------] Global test environment tear-down 
[==========] 1 test from 1 test case ran. (1 ms total) 
[ PASSED ] 1 test. 

ответ

4

Изменение TEST к TEST_F, а SetUp методы и такие называются с TEST_F, но не только TEST.

2

Измените свой TEST-макрос на TEST_F. (Это перечисление в документации прямо под цитатой, которую вы предоставили.)

+0

Спасибо Рон! Это действительно в документации. Похоже, я пропустил эту часть. Ссылка на документы: https://code.google.com/p/googletest/wiki/V1_7_Primer#Test_Fixtures:_Using_the_Same_Data_Configuration_for_Multiple_Te – Bastiano9

+0

Новая ссылка на документы: https://github.com/google/googletest/blob/master/googletest/ Docs/Primer.md – Bastiano9

Смежные вопросы