首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能使用谷歌模拟c++模拟c++打开/OpenEx

不能使用谷歌模拟c++模拟c++打开/OpenEx
EN

Stack Overflow用户
提问于 2015-10-27 11:13:27
回答 1查看 198关注 0票数 2

我试图模仿Cdatabase方法"Open“。贝娄是我做模拟类配置的文件。

afxdb.h

代码语言:javascript
复制
...
    virtual BOOL Open(LPCTSTR lpszDSN, BOOL bExclusive = FALSE,
            BOOL bReadonly = FALSE, LPCTSTR lpszConnect = _T("ODBC;"),
            BOOL bUseCursorLib = TRUE);
...

mock_myCDatabase.h

代码语言:javascript
复制
...<linkers>

class mock_my_CDatabase :public CDatabase
{
public:
    mock_my_CDatabase()
    {}
    ~mock_my_CDatabase()
    {}
    MOCK_METHOD5(Open, BOOL(LPCTSTR lpszDSN, BOOL bExclusive,BOOL bReadonly, LPCTSTR lpszConnect,BOOL bUseCursorLib));
};

DemoClassB.cpp

代码语言:javascript
复制
    ...<linkers>
  ...
    CDemoClassB::CDemoClassB(CDatabase  &p_db)
    {
        m_db = &p_db;
    }
  ...
  ...
    BOOL CDemoClassB::fun2()
    {
        m_db->Open((LPCTSTR)NULL, FALSE, FALSE, (LPCTSTR)"ODBC;DRIVER={MICROSOFT ACCESS DRIVER (*.mdb, *.accdb)};DSN='';DBQ=C:\\Karthik\\GMockDemo\\GMockDemo\\RepolyticsDB.accdb", CDatabase::noOdbcDialog);
            return TRUE;
    }

GMockDemo.cpp

代码语言:javascript
复制
// GMockDemo.cpp : Defines the entry point for the console application.
//

...<linkers>

using namespace testing;
using ::testing::Return;


TEST(mock, mockCDatabase)
{
    mock_my_CDatabase mockDb;

    EXPECT_CALL(mockDb, Open((LPCTSTR)"ODBC;DRIVER={MICROSOFT ACCESS DRIVER (*.mdb, *.accdb)};DSN='';DBQ=C:\\Karthik\\GMockDemo\\GMockDemo\\RepolyticsDB.accdb", CDatabase::noOdbcDialog)).Times(8).WillRepeatedly(Return(TRUE));
    CDemoClassB m_Bt(mockDb);
    ASSERT_EQ(m_Bt.fun2(), TRUE);
}
...
...
int _tmain(int argc, _TCHAR* argv[])
{
    ::testing::InitGoogleMock(&argc, argv);
    RUN_ALL_TESTS();
    std::getchar(); // keep console window open until Return keystroke
    return 0;
}

我无法模拟CDatabase方法:打开。当我运行代码时

期望:被调用一次实际:从不调用-不满意和活动的

有人能帮我模拟一下CDatabase方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-27 11:45:10

您应该得到uninteresting function callsmock_my_CDatabase::Open上的警告消息。检查测试输出。

尝试对模拟的函数参数使用串匹配器。您正在尝试将第一个参数与指向文字的指针相匹配,这将永远不会匹配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33366469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档