jOOQ db mock record.store()添加假id来记录

时间:2017-01-25 21:10:44

标签: java mysql unit-testing mocking jooq

考虑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()

有什么想法吗?

0 个答案:

没有答案