class foo
{
// some functions which uses class member t
protected:
Test t;
};
Class Test
{
// some functions
}
我嘲笑了类测试以及如何将模拟对象分配给类foo?因为我要去测试foo课程。
答案 0 :(得分:1)
我能不能正确理解你吗?您的高效代码位于类foo中,它使用由类提供的功能。在你的情况下测试?请使用依赖注入来避免此类问题。创建一个Test从中派生的接口。例如:
// Productive Code
class TestInterface {
virtual void TestMethod() = 0;
};
class ProductiveTest : public TestInterface {
...
}
class foo
{
public:
foo(TestInterface const& t) : t_(t) {}
// some functions which uses class member t
protected:
TestInterface& t_;
};
// Test Code
class Test : public TestInterface {
MOCK_METHOD0(TestMethod, void());
}
所以你也可以孤立地测试foo。