Я пытаюсь переписать тест, написанный на 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?
Предполагая, что ваши фиктивные классы для объектов 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.
Других решений пока нет …