我正在编写单元测试,用于使用 JOOQ 库从 Oracle DB 获取记录,并且我需要模拟 DSLContext
返回的数据。的fetch()
功能。如何创建示例 Result<Record>
由模拟函数返回?我用谷歌搜索了几个小时,但找不到答案。
最佳答案
尝试使用JOOQ自己的mock 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
关于java - 如何构造 org.jooq.Result 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62073697/