JUNIT的用法笔记

  1. 注解
    JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation:
    @Before:初始化方法 对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)
    @After:释放资源 对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次)
    @Test:测试方法,在这里可以测试期望异常和超时时间
    @Test(expected=ArithmeticException.class)检查被测方法是否抛出ArithmeticException异常
    @Ignore:忽略的测试方法
    @BeforeClass:针对所有测试,只执行一次,且必须为static void
    @AfterClass:针对所有测试,只执行一次,且必须为static void
    一个JUnit4的单元测试用例执行顺序为:
    @BeforeClass -> @Before -> @Test -> @After -> @AfterClass;
    每一个测试方法的调用顺序为: @Before -> @Test -> @After;
    1. DBJUNIT的用法
      dbunit是一个基于junit扩展的数据库测试框架。
            // Excel读取预想值を取得する
            IDataSet expectedDataSet = new XlsDataSet(
                    new File(FILE_DIR + "/GenInfoMkUpd_exp04.xls"));
            ITable expectedTable = expectedDataSet.getTable("TFHHB41_SMGOCHGGENINFO");
            // 実際値を取得する
            IDataSet databaseDataSet = _con.createDataSet();
            ITable actualTable = databaseDataSet.getTable("TFHHB41_SMGOCHGGENINFO");
            exp("TFHHB41_SMGOCHGGENINFO");
            // 件数比較
            assertEquals(expectedTable.getRowCount(), actualTable.getRowCount());
            // 各項目比較
            Assertion.assertEquals(expectedTable, actualTable);

    // 将数据读取到Excel中        
    public boolean exp(String tableName){
      QueryDataSet dataSet = new QueryDataSet(_con);
      try{
          File destFolder = new File("D:\\");
          dataSet.addTable(tableName);
          CsvDataSetWriter.write(dataSet, destFolder);
          return true;
      }catch(Exception e){
          e.printStackTrace();
      }
      return false;
    }

3.Mockito AND PowerMock
PowerMock 简介
使用 PowerMock 以及 Mockito 实现单元测试
使用扩展于 Mockito 的 PowerMock 来实现对于前者不支持的模拟形式的单元测试。
http://blog.csdn.net/dc_726/article/details/8568537
http://liuzhijun.iteye.com/blog/1512780
http://cache.baiducontent.com/c?m=9d78d513d9811cea0fad837f7d498a374043811367918d013894cd47c9221d03506790a63a675541c4c50b3c51f05e5c9da16b2d2a5577f3cc96d5088afbd7756fd1662921409b1941974ab2935125b77ecd4de9d95bbaffa772ccf3838ac2&p=882a9645dcd201fc57efd03456008a&newp=882a9645dc8712a05aa4880c617a8a231610db2151d4d71f3b&user=baidu&fm=sc&query=powermockito&qid=b929c4f000004528&p1=3

@RunWith(PowerMockRunner.class)
@PowerMockIgnore({ "javax.management.*" })
@PrepareForTest({ Transaction.class })
public class GenInfoMkUpdSubCommandTest {
    private Transaction _tran;
    private static final String FILE_DIR = GenInfoMkUpdSubCommandTest.class.getResource("").getPath();
    private DatabaseConnection _con;
    @Before
    public void setUp() throws Exception {
        _tran = Transaction.getTransaction();
        _tran.begin();
        Transaction mockTran = Mockito.mock(Transaction.class);
        Mockito.doNothing().when(mockTran).begin();
        Mockito.doNothing().when(mockTran).commit();
        PowerMockito.spy(Transaction.class);
     Mockito.when(Transaction.getTransaction()).thenReturn(mockTran);
        // DBデータ作成
        FHDAO dao = new FHDAO();
        Connection connection = dao.getConnection();
        _con = new DatabaseConnection(connection,
                JUnitConst.SCHEMA);
    }
}

猜你喜欢

转载自blog.csdn.net/adobeid/article/details/49251617