如何为单元测试构建org.jooq.Result

问题描述 投票:0回答:1

我正在编写单元测试,以使用JOOQ库从Oracle DB中获取记录,我需要模拟DSLContext的fetch()函数返回的数据。如何创建要由模拟函数返回的示例结果。我用Google搜索了几个小时,却找不到答案。

java spring jdbc jooq
1个回答
0
投票

尝试使用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
© www.soinside.com 2019 - 2024. All rights reserved.