• spring验证事务的代码,用到了mockito


    package *.withdraw;
    
    import javax.annotation.Resource;
    
    import org.junit.Before;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.mockito.InjectMocks;
    import org.mockito.Mockito;
    import org.mockito.MockitoAnnotations;
    import org.mockito.Spy;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.test.AbstractTransactionalSpringContextTests;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.TestExecutionListeners;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    import org.springframework.test.context.support.DependencyInjectionTestExecutionListener;
    import org.springframework.test.context.transaction.TransactionalTestExecutionListener;
    import org.springframework.transaction.PlatformTransactionManager;
    
    import com.github.springtestdbunit.DbUnitTestExecutionListener;
    import com.github.springtestdbunit.annotation.DatabaseOperation;
    import com.github.springtestdbunit.annotation.DatabaseSetup;
    import *.SasInfoDao;
    import *.SasInfo;
    import *.SettleBillManagerService;
    import *.WithdrawServiceImpl;
    
    
    
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = { "/applicationContext-test.xml" })
    @TestExecutionListeners({ DependencyInjectionTestExecutionListener.class, DbUnitTestExecutionListener.class,
            TransactionalTestExecutionListener.class })
    @SuppressWarnings("deprecation")
    public class TransactionTest extends AbstractTransactionalSpringContextTests {
    
        private static Logger LOGGER = LoggerFactory.getLogger(TransactionTest.class);
    
        @Resource
        private PlatformTransactionManager transactionManager;
    
        @Spy
        @Resource
        private SasInfoDao sasInfoDao;
    
        @Resource
        private SettleBillManagerService settleBillManagerService;
    
        @InjectMocks
        private WithdrawServiceImpl withdrawServiceImpl;
    
        @Before
        public void init() {
            MockitoAnnotations.initMocks(this);
        }
    
        @Test
        @DatabaseSetup(value = { "/testData/sampleData.xml" }, type = DatabaseOperation.CLEAN_INSERT)
        public void testSettleBillIssuing() {
            this.setTransactionManager(transactionManager);
            this.setDefaultRollback(false);
            this.startNewTransaction();
            Mockito.doThrow(new RuntimeException("fu")).when(sasInfoDao).update(Mockito.any(SasInfo.class));
            settleBillManagerService.setSasInfoDao(sasInfoDao);
            withdrawServiceImpl.setSettleBillManagerService(settleBillManagerService);
            withdrawServiceImpl.operationSettleBillData(55L);
            SasInfo sasInfo = settleBillManagerService.findSettleBillById(54L);
            LOGGER.debug(sasInfo.toString());
            this.endTransaction();
        }
    
    }
  • 相关阅读:
    Oracle连接数一直在增
    ora00020: maximum number of processes (150) exeeded
    oracle归档日志满了
    C# ZPL
    error CS0227: 不安全代码只会在使用 /unsafe 编译的情况下出现
    最全zpl语言指令解析(含乱码)
    ZPL 打印机实例
    ora-01400 无法将NULL插入 ID 解决方法
    windows 选择时间控件(选择日期, 小时分钟秒)
    用户登陆检验----没有优化,大神可以帮忙优化优化
  • 原文地址:https://www.cnblogs.com/usual2013blog/p/4667425.html
Copyright © 2020-2023  润新知