我需要编写一些单元测试,我必须用一些虚拟数据模拟结果集和记录。我不知道如何初始化和实例化它们。请帮忙
提前致谢。
jOOQ 有一些内置的 mock 功能,请参阅手册的JDBC mocking for unit testing一章,它可能是您正在寻找的。
但是,要简单地创建一个 jOOQ 的Result
or Record
,您可以使用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 类相同的效果。