如何在Jooq中初始化和创建ResultSet和Record?

时间:2013-01-22 06:11:57

标签: java unit-testing mocking jooq

我需要编写一些单元测试,我必须模拟结果集和记录一些虚拟数据。我不知道如何初始化和实例化它们。请帮忙

提前致谢。

1 个答案:

答案 0 :(得分:3)

jOOQ有一些内置的模拟功能,请参阅本手册的JDBC mocking for unit testing章节,它可能正是您所寻找的。

但是,要简单地创建jOOQ的ResultRecord,您可以使用DSLContext

// Create the record using the jOOQ generated classes and set a property
MyTableRecord record1 = DSL.using(configuration).newRecord(MY_TABLE);
record1.setValue(MY_TABLE.MY_PROPERTY, "value");

// or simply...
MyTableRecord record2 = new MyTableRecord();
record2.setMyProperty("value");

// Then you can populate the Result
Result<MyTableRecord> result = DSL.using(configuration).newResult(MY_TABLE);
result.add(record1);
result.add(record2);

你还提到ResultSet,如果你的意思是JDBC ResultSet,那么嘲笑它可能会有点复杂。相反,我建议DbUnit,这不是JDBC类的模拟,但你会帮助你设置数据库进行测试,这可能会帮助你获得与模拟JBDC类相同的效果。