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);       }     }   } }


  • 相关阅读:
    20171229
    对象关系型数据库管理系统(PostgresQL )
    CDN技术之--集群服务与负载均衡
    CDN技术之-介绍
    oracle不同用户间访问表不添加用户名(模式)前缀
    ora-28000 the account is locked
    CDN技术之--该技术概述
    CDN技术之--内容缓存工作原理
    PL/SQL题型代码示例
    在java中使用solr7.2.0 新旧版本创建SolrClient对比
  • 原文地址:https://www.cnblogs.com/yuanshuai1026/p/11576981.html
Copyright © 2011-2022 走看看