我有一些代碼使用事務同步管理器..但我似乎無法得到它在嘲笑中工作..即時通訊模擬實體管理器和事務管理器..以便我的上下文保存實體和調用提交...在測試中,TransactionSynchronizationManager似乎沒有被擊中......Junit和Jmock來測試Springs TransactionSynchronizationManager
this.transactionTemplate.execute(new TransactionCallback<E>() {
@Override
public E doInTransaction(TransactionStatus status) {
// update entities
TransactionSynchronizationManager.registerSynchronization(new NotificationTransactionSynchronization(){
@Override
public void afterCommit() {
// do some post commit work
int i = notifier.notifyAllListeners();
}
});
}
});
我的測試類:
@Test
public void testHappyPath() {
context.checking(new Expectations() {
{
allowing(platformTransactionManager).getTransaction(definition);
will((returnValue(status)));
oneOf(platformTransactionManager).commit(status);
//next line never gets hit... so the test fails...
//if i remove it will pass but i need to check that it works...
oneOf(mockNotifier).notifyAllListeners();
}
});
this.TestClass.process();
context.assertIsSatisfied();
}
請清理後 – nav0611 2013-02-26 11:49:18
吧?..如何..更多信息...更好的格式?... – user1555190 2013-02-26 11:54:20
它現在由Don羅比格式化 – nav0611 2013-02-26 11:56:39