native最終的に関数呼び出しが呼び出されるコードを呼び出す JUnit テスト ケースを作成しています。私が書きたいテストの疑似コードは次のとおりです。
@Test
public void testNoWritesToStdOut() {
x = new StdOutTrap();
x.startTrappingStdOut();
try {
callTheFunctionUnderTest(); // Nothing should be written to stdout
assertEquals("", x.capturedOutput());
} finally {
x.stopTrappingStdOut();
}
}
次のように、C コードである可能性があるコードをcallTheFuntionUnderTest()呼び出すことに注意してください。native
...
printf("fail\n");
または、次のような C++ コード:
...
std::cout << "fail" << std::endl;
System.out.Xわかりやすくするために、呼び出しをカスタムPrintStream経由にリダイレクトしたくありませんSystem.setOut。制御できない呼び出しstdoutの実行中に標準ストリームに書き込まれたバイトがある場合は、そのコピーを取得したいと考えています。native
アイデア?