1

为了测试标准输入输出,我想编写一个帮助程序来打开一个文件,该文件的行为类似于文件,但实际上只有 100 个字符的固定内存,我可以像常规缓冲区一样直接访问。

基本上类似于以下内容。

TEST( printfMock, happyPath )
{
    const unsigned size = 100;
    char buffer[size];
    const char helloStackoverflow = "Hello Stackoverflow";
    FILE * mock, backup;

    backup = stdout; 
    mock = helper(buffer, suze);
    printf("%s", helloStackoverflow);
    stdout = backup;
    cleanup(mock);

    EXPECT_STREQ(helloStackoverflow, buffer);

}

我需要一些关于如何实现该helper功能的文档。此功能旨在专门在 Windows 上运行。

4

1 回答 1

2

FILE *mock 表示指向File Descriptor的指针。FD 被传递给操作系统以在设备或文件上执行 I/O。因此,您需要一个可以使内存缓冲区充当设备或文件的驱动程序。此类驱动程序适用于 Windows 和 Linux。我真的不打算以任何其他方式这样做。

于 2013-10-23T12:40:15.117 回答