增加 void 函数的覆盖率,其中 else 分支只是一个打印,没有变量改变
Increase coverage for void functions where on else branch is just a print and no variables changed
我不得不测试一个类似于 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
为了覆盖分支,我认为我应该对 m_member_name != nullptr 进行一项测试,对 [=32= 进行一项测试] == nullptr.
对于第一个很简单,因为我希望 another_function() 被调用一次,使用
EXPECT_CALL(MOCK_Member_name, another_function())
.Times(1); // I created a mock for Member_name before
其中 MOCK_Member_name 是 Member_name
的模拟
但是我应该如何验证 for m_member_name == nullptr 是否在 else 分支上?
我知道这是一个愚蠢的问题,但我只研究了 Google Mock 很短的时间。
我研究了更多(请参阅 source 并且在这种特定情况下有最佳解决方案。
如果我想验证它是否继续在其他分支上,我应该期望使用 .Times(0);[= if 中的函数根本不会被调用20=]
EXPECT_CALL(MOCK_Member_name, another_function())
.Times(0);
有关其他详细主题,请参阅:googletest-release-1.8.0-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
为了覆盖分支,我认为我应该对 m_member_name != nullptr 进行一项测试,对 [=32= 进行一项测试] == nullptr.
对于第一个很简单,因为我希望 another_function() 被调用一次,使用
EXPECT_CALL(MOCK_Member_name, another_function())
.Times(1); // I created a mock for Member_name before
其中 MOCK_Member_name 是 Member_name
的模拟但是我应该如何验证 for m_member_name == nullptr 是否在 else 分支上?
我知道这是一个愚蠢的问题,但我只研究了 Google Mock 很短的时间。
我研究了更多(请参阅 source 并且在这种特定情况下有最佳解决方案。
如果我想验证它是否继续在其他分支上,我应该期望使用 .Times(0);[= if 中的函数根本不会被调用20=]
EXPECT_CALL(MOCK_Member_name, another_function())
.Times(0);
有关其他详细主题,请参阅:googletest-release-1.8.0-googlemock