验证并验证 NoMoreInteractions 到 gtest
verify and verifyNoMoreInteractions to gtest
我正在尝试为 gtest 重写从 JUnit 编写的测试:我遇到了以下几行:
when(obj1.peek(300)).thenReturn(true);
verify(obj1, times(1)).peek(333);
verify(obj2, times(1)).log(400);
verifyNoMoreInteractions(obj1);
verifyNoMoreInteractions(obj2);
而且我不知道该如何处理。
请帮助我。
P.S。如何从 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,这样您就可以查看测试的代码覆盖率。由于您不能使用相同的,那么最好的选择可能是@Stefano 建议的 Gcov。
我正在尝试为 gtest 重写从 JUnit 编写的测试:我遇到了以下几行:
when(obj1.peek(300)).thenReturn(true);
verify(obj1, times(1)).peek(333);
verify(obj2, times(1)).log(400);
verifyNoMoreInteractions(obj1);
verifyNoMoreInteractions(obj2);
而且我不知道该如何处理。 请帮助我。
P.S。如何从 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,这样您就可以查看测试的代码覆盖率。由于您不能使用相同的,那么最好的选择可能是@Stefano 建议的 Gcov。