【发布时间】:2014-01-02 18:21:00
【问题描述】:
我有一些使用事务同步管理器的代码.. 但我似乎无法让它在模拟中工作.. 我在模拟实体管理器和事务管理器.. 以便我的上下文保存一个实体并调用提交... 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();
}
【问题讨论】:
-
请清理您的帖子
-
嗯?...如何...更多信息...更好的格式?...
-
现在由 Don Roby 格式化