Dav*_*ave 13 junit spring transactions jta mocking
我正在使用Spring 3.1.0.RELEASE,JUnit 4.8.1,并最终将我的应用程序部署到JBoss 4.2服务器(我知道,我知道).作为设置单元测试的一部分,我在Spring测试应用程序上下文中有这个...
<bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="userTransactionName">
<value>UserTransaction</value>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
当然,现在这个失败了,因为JNDI名称"UserTransaction"没有任何约束.我如何模拟交易管理器?我正在使用org.mockejb框架,但对任何合适的模拟框架都是开放的.
小智 14
我们只是为事务管理器创建一个空实现,并确保在单元测试使用的spring-context中使用此实现
package sample;
import org.springframework.stereotype.Service;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionException;
import org.springframework.transaction.TransactionStatus;
public class MockedTransactionManager implements PlatformTransactionManager {
@Override
public TransactionStatus getTransaction(TransactionDefinition definition) throws TransactionException {
return null;
}
@Override
public void commit(TransactionStatus status) throws TransactionException {
}
@Override
public void rollback(TransactionStatus status) throws TransactionException {
}
}
Run Code Online (Sandbox Code Playgroud)
..然后在spring-xml文件中看起来像......
<bean id="transactionManager" class="sample.MockedTransactionManager"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11897 次 |
| 最近记录: |