0

我必须测试一个与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进行一项测试,对m_member_name == 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 的模拟

但是我应该如何验证 m_member_name == nullptr 是否正在进行 else 分支?

我知道这是一个愚蠢的问题,但我研究 Google Mock 的时间很短。

4

1 回答 1

1

我研究了更多(请参阅源代码,在这种特定情况下有最佳解决方案。

如果我想验证它是否在 else 分支上,我应该只期望 if 中的函数根本不会被调用,使用.Times(0);

EXPECT_CALL(MOCK_Member_name, another_function())  
         .Times(0); 

有关其他详细主题,请参阅:googletest-release-1.8.0-googlemock

于 2020-04-24T14:01:27.563 回答