GMock C框架功能

时间:2018-04-04 14:31:39

标签: c unit-testing googletest gmock

目前我有点担心以下问题,因为我目前不知道在哪个方面解决它。目的是模拟一些与 fcntl.h 一起出现的c函数,比如打开一个文件。结果,我建立了一个看起来像这样的GMock结构:

模拟课程:

class FileHandlingLib_MOCK
{
public:
    virtual ~FileHandlingLib_MOCK() {}

    //mock
    MOCK_METHOD2(open, int(const char* t1, int i1));
};

夹具:

class TestFixture : public ::testing::Test
{
    ...
}

模拟开放功能:

int open(const char* t1, int i1)
{
    return TestFixture::_fileHandlingMock->open(t1, i1);
}   

如果我这样做,它会完美无缺:

TEST_F(FileHandlingUnitTesting, openMatch)
{
    EXPECT_CALL(*_fileHandlingMock, open("path_to_file", ::testing::Matcher<int>(1))).WillRepeatedly(::testing::Return(int(12)));

    int a = open("path_to_file", 1);
}

但是,如果open函数嵌套到另一个函数中(包含fcntl.h,代码本身),则永远不会调用mock。这是否意味着预期的调用“范围”仅限于TEST_F本身?

0 个答案:

没有答案
相关问题