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
アイデア?