ひがやすを技術ブログ

電通国際情報サービスのプログラマ

動的なSQLのテスト

動的なSQLのテストはこんな感じ


String sql = SqlFactory.create(
"../EmployeeDao_getEmployeesByJobDeptnoList.sql");
//SQLの解析ツリー
Node root = new SqlParserImpl(sql).parse();
CommandContext ctx = new CommandContextImpl();
//引数をいろいろ変えてテストする
//jobがnull、deptnoListのサイズが0の場合
ctx.addArg("job", null);
ctx.addArg("deptnoList", new ArrayList());
root.accept(ctx);
//想定するSQLと比較する
assertEquals(expectedSql, ctx.getSql());
//CommandContext.getBindVariables()でバインド変数もテストできる