Увеличьте охват для пустых функций, где в другой ветви просто печать, а переменные не изменены - PullRequest
0 голосов
/ 21 апреля 2020

Мне нужно было протестировать функцию, аналогичную 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 происходит в другой ветви?

Я знаю, что это глупо вопрос, но я изучаю gmock с короткого времени.

1 Ответ

1 голос
/ 24 апреля 2020

Я изучил больше (см. источник , и в этом конкретном случае c есть лучшее решение.

Если я хочу проверить, идет ли я в другой ветви, Я просто должен ожидать, что эта функция из если не будет вызвана вообще, используя .Times (0);

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

Для других подробных тем см .: googletest -release-1.8.0-googlemock

...