• junit在myeclipse中使用的详细步骤


    myEclipse中junit的用法

    我们创建一个Java工程,添加一个example.Hello类,首先我们给Hello类添加一个abs()方法,作用是返回绝对值:

      下一步,我们准备对这个方法进行测试,确保功能正常。选中Hello.java,右键点击,选择New->JUnit Test Case:

      Eclipse会询问是否添加junit.jar包,确定后新建一个HelloTest类,用来测试Hello类。

      选中setUp()和tearDown(),然后点击“Next”:

      选择要测试的方法,我们选中abs(int)方法,完成后在HelloTest.java中输入:

      JUnit会以以下顺序执行测试:(大致的代码)

    try {
    HelloTest test = new HelloTest(); // 建立测试类实例
    test.setUp(); // 初始化测试环境
    test.testAbs(); // 测试某个方法
    test.tearDown(); // 清理资源
    }
    catch…
      setUp()是建立测试环境,这里创建一个Hello类的实例;tearDown()用于清理资源,如释放打开的文件等等。以test开头的方法被认为是测试方法,JUnit会依次执行testXxx()方法。在testAbs()方法中,我们对abs()的测试分别选择正数,负数和0,如果方法返回值与期待结果相同,则assertEquals不会产生异常。

      如果有多个testXxx方法,JUnit会创建多个XxxTest实例,每次运行一个testXxx方法,setUp()和tearDown()会在testXxx前后被调用,因此,不要在一个testA()中依赖testB()。

      直接运行Run->Run As->JUnit Test,就可以看到JUnit测试结果:

      绿色表示测试通过,只要有1个测试未通过,就会显示红色并列出未通过测试的方法。可以试图改变abs()的代码,故意返回错误的结果(比如return n+1;),然后再运行JUnit就会报告错误。

      如果没有JUnit面板,选择Window->Show View->Other,打开JUnit的View:

      JUnit通过单元测试,能在开发阶段就找出许多Bug,并且,多个Test Case可以组合成Test Suite,让整个测试自动完成,尤其适合于XP方法。每增加一个小的新功能或者对代码进行了小的修改,就立刻运行一遍Test Suite,确保新增和修改的代码不会破坏原有的功能,大大增强软件的可维护性,避免代码逐渐“腐烂”。

    代码测试用例:

    package com.inspur.test;

    import java.util.List;

    import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;

    import com.inspur.po.TUser;

    import junit.framework.Assert;
    import junit.framework.TestCase;

    public class HibernateTest extends TestCase{
     Session session=null;

     @Override
     protected void setUp() throws Exception {
      // TODO Auto-generated method stub
      Configuration config=new Configuration().configure();
      SessionFactory sessionFactory=config.buildSessionFactory();
      session=sessionFactory.openSession();
     }

     @Override
     protected void tearDown() throws Exception {
      // TODO Auto-generated method stub
      session.close();
     }
     public void testSelect(){
      String hql="from TUser where name='lzhq'";
      Transaction tran=null;
      try{
       tran=session.beginTransaction();
       List userList=session.createQuery(hql).list();
       TUser user=(TUser)userList.get(0);
       Assert.assertEquals(user.getName(), "lzhq");
      }catch(HibernateException e){
       e.printStackTrace();
       Assert.fail(e.getMessage());
      }
     }
     public  void testInsert(){  
      Transaction tran=null;
      try{
       TUser user=new TUser();
       tran=session.beginTransaction();
       user.setName("lzhq");
       session.save(user);
       session.flush();
       tran.commit();
      }catch(HibernateException e){
       e.printStackTrace();
       Assert.fail(e.getMessage());
       if(tran!=null){
        try{
         tran.rollback();
        }catch(HibernateException e1){
         e1.printStackTrace();
        }
       }
      }
     }
     

    }

  • 相关阅读:
    如何测试一个纸杯?
    你对测试最大的兴趣在哪里?为什么
    您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?
    BUG管理工具的跟踪过程(用BugZilla为例子
    说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优缺点和主要适应于哪种类型测试
    你认为做好测试计划工作的关键是什么
    单元测试、集成测试、系统测试的侧重点是什么?
    黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!
    Python 运算符
    Python 基础数据类型
  • 原文地址:https://www.cnblogs.com/moonfans/p/2950155.html
Copyright © 2020-2023  润新知