我想检查一长串匹配器的字符串向量。对于短序列,我可以这样做:
std::vector<std::string> results = SomeCall();
ExpectThat (results, ElementsAre(IsDelay(7), "read", IsDelay(5), "write"));
(其中IsDelay
是我自己的自定义匹配器)。
但ElementsAre
最多只能使用10个元素。如果我想查看更长的序列,我可以使用ElementsAreArray
,但是我将所期望的数组声明为什么?例如,如果我尝试这样做:
XXX expected[] = {IsDelay(7), "read", IsDelay(5), "write")};
ExpectThat (results, ElementsAreArray (expected));
XXX应该是什么?
我在C ++ 11模式下使用gcc 4.8.1,使用gmock 1.5.0。
答案 0 :(得分:0)
类型应为::testing::Matcher<std::string>
,所以:
::testing::Matcher<std::string> expected[] = {IsDelay(7), "read",
IsDelay(5), "write"};
请参阅文档中的Matching Containers部分,特别是示例:
// Or, an array of element matchers. Matcher<int> expected_vector2 = { 1, Gt(2), _, 3, ... }; EXPECT_CALL(mock, Foo(ElementsAreArray(expected_vector2)));