zoukankan      html  css  js  c++  java
  • JUnit 的使用



    • 添加依赖

      新建一个maven项目,然后添加依赖:

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <!-- 告诉该类库用于测试阶段 -->
      <scope>test</scope>
    </dependency>
    • 接口
    1 package cn.edu.xcu.reflect.dao;
    2 public interface BookDao {
    3   public void insert();
    4   public void update();
    5   public void del();
    6 }
    • 实现类
    import org.junit.Test;
    import cn.edu.xcu.reflect.dao.BookDao;   //这么做存在代码重复   public class BookDaoImpl implements BookDao {   @Test//告诉 Junit 该方法要运行   @Override   public void insert() {   try {     System.out.println("开启会话");     ////     System.out.println("插入书籍");     ///     System.out.println("事务提交");   } catch (Exception e) {     System.out.println("事务回滚");   e.printStackTrace();     } finally {     System.out.println("关闭会话");   } }
    • 测试

          


    •  定义注解
    @Retention(RetentionPolicy.RUNTIME) // 因为通过反射读取
    @Target({ ElementType.METHOD }) // 测试方法
    public @interface Test {
    }
    • 在被测试类上添加注解
    //这么做存在代码重复
    public class BookDaoImpl implements BookDao {
      @Test
      @Override
      public void insert() {
        try {
        System.out.println("开启会话");
        ////
         System.out.println("插入书籍");
        ///
        System.out.println("事务提交");
          } catch (Exception e) {
        System.out.println("事务回滚");
        e.printStackTrace();
        } finally {
        System.out.println("关闭会话");
        }
      }
      @Override
      public void update() {
        try {
        System.out.println("开启会话");
        ////
        System.out.println("修改书籍");
        ///
        System.out.println("事务提交");
        } catch (Exception e) {
        System.out.println("事务回滚");
        e.printStackTrace();
        } finally {
        System.out.println("关闭会话");
    }
    
    }
    • 编写测试类工具
    public class TestTool {
      public static void main(String[] args) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
         startTest(BookDaoImpl.class);
    }
    public static void startTest(Class clazz)throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {   // 1 告诉测试那个类   Object obj = clazz.newInstance();   // 2 判断该类的方法是否有我们自定义的注解,如果有就调用该方法   Method[] ms = clazz.getDeclaredMethods();   for (Method method : ms) {   if (method.isAnnotationPresent(Test.class)) {   method.invoke(obj);       }     }   } }


  • 相关阅读:
    Flush the AOS cache from code
    EntityConnectionStringBuilder 构造EF连接字符串
    AX中文转拼音
    AX2012 AOT中Web部署显示二级以上菜单
    clearCompanyCache
    AX2009 打印到PDF优化
    AX ODBC读取其他SQL数据库服务器数据
    AX2009报表打印固定长度Barcode条码
    Create Product Variant
    Rename AOT Object
  • 原文地址:https://www.cnblogs.com/yuanshuai1026/p/11576981.html
Copyright © 2011-2022 走看看