FRIEND_TEST in Google Test - possible circular dependency?

Posted by Mihaela on Stack Overflow See other posts from Stack Overflow or by Mihaela
Published on 2012-11-01T04:45:52Z Indexed on 2012/11/01 5:00 UTC
Read the original article Hit count: 206

I am trying to figure out how FRIEND_TEST works in Google Tests. http://code.google.com/p/googletest/wiki/AdvancedGuide#Private_Class_Members

I am looking at the following item, trying to implement it in my code:

// foo.h
#include "gtest/gtest_prod.h"

// Defines FRIEND_TEST.
class Foo {
  ...
 private:
  FRIEND_TEST(FooTest, BarReturnsZeroOnNull);
  int Bar(void* x);
};

// foo_test.cc
...
TEST(FooTest, BarReturnsZeroOnNull) {
  Foo foo;
  EXPECT_EQ(0, foo.Bar(NULL));
  // Uses Foo's private member Bar().
}

In the code above, the piece that I can't see, is that foo_test.cc must include foo.h, in order to have access to Foo and Bar(). [Perhaps it works differently for Google ? in my code, I must include it]

That will result in circular dependency...

Am I missing something ?

© Stack Overflow or respective owner

Related posts about c++

Related posts about unit-testing