我要编写一个 JUnit 来检查是否正在维护版本(在事件中)。这是我使用 JUnit 所做的:
@Test
Public void testAudit() {
try {
//create Dao code
dao.save(); //This will create entry in AUD- and REVINFO-tables perfectly
SomeObject obj = SomeHelper.getAuditData(dao));
/*Method to be tested which generates audit message using envers i.e(dao created)*/
//Some logic to check if output is as expected
}
catch(Exception e) {
Assert.fail();
}
finally {
dao.delete(); //delete the data saved by JUnit (Problem starts here )
}
}
为 dao 调用 delete 会导致
UnsupportedOperationException:无法写入只读对象
我使用 Ehcache 进行缓存。我搜索了这个问题并知道这可能是因为CacheConcurrencyStrategy
我想删除的域对象设置错误。我检查了。
对于域对象,没有CacheConcurrencyStrategy
. 但是嵌套对象已CacheConcurrencyStrategy
设置为READ_WRITE
(这可能是真正的罪魁祸首)。
但我不想更改现有域和现有代码。有没有办法绕过CacheConcurrencyStrategy
JUnit?如果没有,是否有任何可能的出路而不更改现有代码?