У меня есть 2 фиктивных метода
struct temp_struct
{
int x;
};
using range = std::vector<std::vector<temp_struct>>;
Class MockA: public A
{
public:
MOCK_METHOD1(write_data, int(int a, int b));
MOCK_METHOD1(write_data, int(int a, const range &ranges));
}
Я хочу ожидать вызова write_data с диапазоном в качестве аргумента. Я хочу соответствовать типу, чтобы избежать двусмысленности. Я не хочу сравнивать значение этого аргумента.
TEST_F(MyTest, test1)
{
...
EXPECT_CALL(MOCKA_obj, write_data(_, TypedEq<const range_t&>(_)))
.Times(1)
.WillOnce(Return(0));
...
}
Это дает мне следующую ошибку:
test.cc.cc:256:1: требуется отсюда build /../ gmock / include / gmock / gmock.h: 5564: 41: ошибка: нет соответствия для 'operator ==' (типы операндов - 'std :: vector> 'и' const testing :: internal :: AnythingMatcher ') GMOCK_IMPLEMENT_COMPARISON_MATCHER_ (Eq, ==, "равно", "не равно"); ^
build /../ gmock / include / gmock / gmock.h: 5544: 20: примечание: в определении макроса 'GMOCK_IMPLEMENT_COMPARISON_MATCHER_' return lhs op rhs_; \ ^
build /../ gmock / include / gmock / gmock.h: 5564: 41: note: кандидатами являются: GMOCK_IMPLEMENT_COMPARISON_MATCHER_ (Eq, ==, "равно", "не равно"); ^
build /../ gmock / include / gmock / gmock.h: 5544: 20: примечание: в определении макроса 'GMOCK_IMPLEMENT_COMPARISON_MATCHER_' return lhs op rhs_; \ ^
В файле, включенном из test.cc.cc:3:0: build /../ gmock / include / gtest / gtest.h: 9173: 6: note: template bool testing :: internal :: operator == (T *, const testing :: internal :: connected_ptr &) bool operator == (T * ptr, const connected_ptr & x) {^
build /../ gmock / include / gtest / gtest.h: 9173: 6: note: ошибка вывода / подстановки аргумента шаблона: в файле, включенном из сборки /../ test.h: 11: 0, из test.cc. Копия: 7:
build /../ gmock / include / gmock / gmock.h: 5564: 41: примечание: несовпадающие типы 'T *' и 'std :: vector>' GMOCK_IMPLEMENT_COMPARISON_MATCHER_ (Eq, ==, "равно", "isn 'не равно "); ^
build /../ gmock / include / gmock / gmock.h: 5544: 20: примечание: в определении макроса 'GMOCK_IMPLEMENT_COMPARISON_MATCHER_' return lhs op rhs_; \ ^