我正在编写单元测试,以使用JOOQ库从Oracle DB中获取记录,我需要模拟DSLContext的fetch()函数返回的数据。如何创建要由模拟函数返回的示例结果。我用Google搜索了几个小时,却找不到答案。
尝试使用JOOQ自己的模拟API。这是官方的docs
您可能想要结束类似的事情:
final MockDataProvider myMockProvider = new MockDataProvider() {
@Override
public MockResult[] execute(final MockExecuteContext context)
throws SQLException {
final DSLContext context = DSL.using(SQLDialect.ORACLE);
final Result<Record> resultRecord = context.newResult(YOUR_TABLE_HERE);
// customize your record with needed fields
resultRecord.add(context.newRecord(YOUR_TABLE_HERE));
return new MockResult[] { new MockResult(1, resultRecord) };
}
};
final DSLContext mockedDSL = DSL.using(new MockConnection(myMockProvider), SQLDialect.ORACLE);
// here you go with your tests