Я пытаюсь смоделировать функцию Open, присутствующую как часть класса CDatabase, с помощью Google Mock. Версия Visual Studio: 2010 Ниже приведен фрагмент кода:
class TestRLanguage: public RLanguage, public ::testing::Test
{
};
class FakeDatabase : public CDatabase
{
public:
MOCK_METHOD5(Open_impl, BOOL(LPCTSTR lpszDSN, BOOL bExclusive,BOOL bReadonly, LPCTSTR lpszConnect,BOOL bUseCursorLib));
BOOL Open(LPCTSTR lpszDSN, BOOL bExclusive = FALSE,
BOOL bReadonly = FALSE, LPCTSTR lpszConnect = _T("ODBC;"),
BOOL bUseCursorLib = TRUE) override
{
Open_impl( lpszDSN, bExclusive, bReadonly, lpszConnect, bUseCursorLib);
}
};
// Test case for testing initialize function
TEST_F(TestRLanguage, initializeSuccess)
{
FakeDatabase database;
EXPECT_CALL(database, Open(NULL, FALSE, FALSE, "ODBC;DSN=", FALSE)).Times(testing::Exactly(1));
}
Я получаю следующую ошибку:
error C2770: invalid explicit template argument(s) for 'AddReference<const ::std::tr1::tuple_element<I,std::tr1::tuple<_Arg0,_Arg1,_Arg2,_Arg3,_Arg4>>::type>::type testing::internal::TuplePolicy<TupleT>::get(const std::tr1::tuple<_Arg0,_Arg1,_Arg2,_Arg3,_Arg4> &)' c:\src\googlemockandtest\aqtsw\util\googletest\googletest-release-1.8.1\googletest\include\gtest\gtest-printers.h
Может кто-нибудь помочь мне в решении этой проблемы?