1

stdio をテストするには、ファイルのように動作する FILE を開くヘルパーを作成しますが、実際には、通常のバッファーのように直接アクセスできる 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 に答える