Hi,
I'm looking at ways to combine existing test suites. However one
problem I can see myself running into is with combining a test suite
that uses a stub for component X with a test suite for the real X,
that would mean duplicate symbols for the final link. For the test
suite that uses a stub for X, I suppose one approach could be to have
the stub named differently and in the component that uses X have a
macro for the test build that #defines X to be the stubname instead
but I don't know if I like that approach. e.g. of this below.
TestFixtureForFoo.cpp
void TestFixtureForFoo::testInteractionWithX()
{
Foo f;
CPPUNIT_ASSERT( f.memberFunctionThatInteractsWithX());
}
Foo.cpp
#ifdef CPPUNIT_TEST_BUILD
//re-define so symbols don't clash with the real thing, and Foo's code
needs no change
#defined X XStub
#endif
bool Foo:memberFunctionThatInterfactsWithX()
{
X instanceOfX;
return instanceOfX.doSomething()
}
I'm sure people have gone through the same thing so I'm wondering if
there's a common approach to this ?
|