如何在jOOQ模拟数据中返回结果列表

时间:2019-06-06 18:24:49

标签: java jdbc jooq

我正在使用jOOQ的MockDataProvider模拟对数据库的调用。我已经弄清楚了如何使用以下信息返回单个记录:https://blog.jooq.org/2013/02/20/easy-mocking-of-your-database/

但是,我想返回结果列表,而不仅仅是查询的单个记录。我该怎么办?

我可以使用以下命令(来自上面的链接)返回单个结果:

return new MockResult[] {
  new MockResult(1, result)
};

但是,我无法弄清楚如何添加多个结果,MockResult的所有构造函数都只取一个结果。有什么提示吗?我缺少明显的东西吗?

例如,如果我查询所有公路自行车: SELECT * FROM bicycles WHERE type = "road"; 如何返回10辆自行车的清单,而不是一个?

1 个答案:

答案 0 :(得分:1)

  

我可以使用以下内容(来自上面的链接)返回单个结果

但是已经足够了。您返回带有多个记录的单个结果。您传递给MockResult构造函数的结果看起来像这样:

var result = ctx.newResult(BICYCLES.COL1, BICYCLES.COL2);
result.add(ctx.newRecord(BICYCLES.COL1, BICYCLES.COL2).values(1, 2));
result.add(ctx.newRecord(BICYCLES.COL1, BICYCLES.COL2).values(3, 4));
...