没有调用googletest SetUp方法

时间:2015-08-04 15:26:59

标签: c++ googletest

我使用Google Test对我的C ++项目进行单元测试。入门指南说:

  

如有必要,编写一个默认构造函数或SetUp()函数来为每个测试准备对象。一个常见的错误是将SetUp()拼写为Setup(),并且让你不小心发生这种情况。

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.

2 个答案:

答案 0 :(得分:6)

TEST更改为TEST_F,将SetUp方法更改为TEST_F,但不能仅使用TEST

答案 1 :(得分:2)

将您的TEST宏更改为TEST_F。 (它列在你提供的报价下面的文档中。)