Mockrunner を使用して、select ステートメントのモック結果セットを作成しています。select ステートメント (単一の値を返す) を実行するループがあります。結果セットが毎回異なる値を返すようにしたいのですが、ステートメントが呼び出された回数に基づいて結果セットの戻り値を指定する方法について何も見つけることができませんでした。コードの擬似コード スニペットを次に示します。
テストコードでは:
String selectSQL = "someselectStmt";
StatementResultSetHandler stmtHandler = conn.GetStatementResultSetHandler();
MockResultSet result = stmtHandler.createResultSet();
result.addRow(new Integer[]{new Integer(1)});
stmtHandler.prepareResultSet(selectSQL, result);
実際のターゲット クラス:
Integer[] Results = getResults(selectSQL);
while(Results.length != 0){
//do some stuff that change what gets returned in the select stmt
Results = getResults(selectSQL)
}
したがって、基本的には、初回は 1、2 回目は 2、3 回目は何も返しません。これまでのところ、これを達成できるように活用できるものは何も見つかりませんでした。モックされた select ステートメントは、最後の結果セットが関連付けられていたものを常に返します (たとえば、2 つの MockResultSets を作成し、両方を同じ select stmt に関連付けた場合)。この考えは可能ですか?