I have class
class CSumWnd : public CBaseWnd
{
private:
bool MethodA()
}
Please can you help how to mock MethodA() without making virtual,
I didn't understand the concept of hi-perf dependency injection
解决方案
It means you will have to templatize your production code. Using your example:
CSumWind class declaration
class CSumWnd : public CBaseWnd
{
private:
bool MethodA()
};
Mocked CSumWnd class declaration
class MockCSumWnd : public CBaseWnd
{
private:
MOCK_METHOD(MethodA, bool());
};
Production class which have to be tested with mocked class CSumWind. Now it becomes templated to provide using CSumWind class in production code and MockCSumWnd class in tests
template
class TestedClass {
//...
void useSumWnd(const CSumWndClass &a);
private:
CSumWndClass sumWnd;
};
Instantiation of TestedClass in production:
TestedClass obj;
Instantiation of TestedClass object in test executable:
TestedClass testObj;