C++ 增加void函数的覆盖率,其中on-else分支只是一个打印,没有变量更改
我必须测试一个类似于foo()的函数:C++ 增加void函数的覆盖率,其中on-else分支只是一个打印,没有变量更改,c++,googletest,googlemock,C++,Googletest,Googlemock,我必须测试一个类似于foo()的函数: class A{ ..... void foo(int a) { if( nullptr != m_member_name) m_member_mane->another_function(); else Logger << "some message"; } ..... Member_name *m_member_name; }//end
class A{
.....
void foo(int a)
{
if( nullptr != m_member_name)
m_member_mane->another_function();
else Logger << "some message";
}
.....
Member_name *m_member_name;
}//end class A
其中MOCK_Member_name是对Member_name的模拟
但我应该如何验证for m_member_name==nullptr是否正在执行else分支
我知道这是一个愚蠢的问题,但我只研究了Google Mock一小段时间。我研究了更多(请参阅,在这个具体案例中有最好的解决方案)
如果我想验证它是否在else分支上运行,我应该使用.Times(0);
EXPECT_CALL(MOCK_Member_name, another_function())
.Times(0);
有关其他详细主题,请参见:
Logger@idclev463035818,我想它应该可以工作。Logger是一个非常丑陋的类,它被覆盖了,我也不知道gmock,但是与其只模拟Logger
的一个方法,不如更容易模拟整个Logger
。如果你在else
中只有一条注释,我将你会争辩说代码需要被修复,而或者需要被删除;)
EXPECT_CALL(MOCK_Member_name, another_function())
.Times(0);