How to mock a method with optional parameter in Google Mock? For example:
class A
{
public:
void set_enable( bool enabled = true );
};
class MockA : public A
{
MOCK_METHOD1( set_enable, void( bool ) ); // this is not working
};
How to mock a method with optional parameter in Google Mock? For example:
class A
{
public:
void set_enable( bool enabled = true );
};
class MockA : public A
{
MOCK_METHOD1( set_enable, void( bool ) ); // this is not working
};
Change implementation of your method
set_enable
to use a helper method, like this:Now, in class
MockA
, create a mock method forset_enable_impl
:Then, in your production code you simply use
set_enable
as you would in the first place, while in tests you can set expectations on methodset_enable_impl
:An alternative would be to overload the method by having versions with one and zero parameters. It is up to you to determine which way works better for your case.
This is an alternative of Marko's answer: If you don't want to change your original code, just implement the helper in the mock class:
You still have to expect calls of
set_enable_impl
in your tests, for exampleSome modifications to PiQuer's answer. You wouldn't need a wrapper if just add the name, "enabled" to the variable of type bool in your
MOCK_METHOD1
like below: