verify и verifyNoMoreInteractions для gtest

Я пытаюсь переписать тест, написанный на JUnit для gtest: я столкнулся со следующими строками:

when(obj1.peek(300)).thenReturn(true);
verify(obj1, times(1)).peek(333);
verify(obj2, times(1)).log(400);
verifyNoMoreInteractions(obj1);
verifyNoMoreInteractions(obj2);

И я не знаю, как с этим справиться.
Пожалуйста, помогите мне.

Постскриптум Как получить процент покрытия от gtest / gmock?

1

Решение

Предполагая, что ваши фиктивные классы для объектов obj1 а также obj2 названы MyMockClass1 а также MyMockClass2вот как ты это делаешь используя gmock:

testing::StrictMock<MyMockClass1> obj1;
testing::StrictMock<MyMockClass2> obj2;

EXPECT_CALL(obj1, peek(300)).WillOnce(Return(true));
EXPECT_CALL(obj1, peek(333)).Times(1);
EXPECT_CALL(obj2, loog(400)).Times(1);

Использование testing::StrictMock обрабатывает каждый неинтересный вызов метода для этого фиктивного объекта как ошибку, что должно быть тем, чего вы хотите достичь verifyNoMoreInteractions,

Что касается покрытия кода, я лично использую надстройку Visual Studio для GTEST, который затем позволяет увидеть покрытие кода тестами. Поскольку вы не можете использовать то же самое, то, вероятно, лучшая ставка Gcov предложено @Stefano.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]