考虑DAO方法的以下摘录:
newRecord = db.newRecord(ACCOUNT);
newRecord.setName(newAccountName);
newRecord.store();
在生产中,这会成功插入一条新记录,并将id
对象的newRecord
设置为插入记录的实际`id。
现在考虑以下摘录来自此方法的单元测试:
Connection connection = new MockConnection(c -> {
AccountRecord record = DSL.using(SQLDialect.MYSQL).newRecord(ACCOUNT);
record.setId(ULong.valueOf(5));
record.setName("bananas");
return new MockResult[] { new MockResult(record) };
});
DSLContext mockContext = DSL.using(connection, SQLDialect.MYSQL);
JSONObject actualResult = testDAO.createNewAccount("bananas");
事实证明,在调用id
时,上述测试无法在newRecord
上设置.store()
。
有什么想法吗?