20145107 《Java程序设计》第二次实验报告

  • 实验内容与体会:
    在本次试验中,我们进行了单元测试的学习,我用的是eclipse+Windows的形式,通过一些基本的单元测试完成了本次的实验。
    在实验的一开始:要想对某个程序进行单元测试,我们先是在eclipse中建立了一个新的项目,项目的名字是TDDDmeo。并在这个新的项目里右键单击创建一个source floder

并将floder的名字命名为test:

在创建好的test处右键单击,进行junit test case:

它的名字命名如下:

然后一路ok。之后,在src的文件夹里创建一个新的类,类的名字叫做MyUtil,它也就是我们要测试的类。

MyUtil类的代码如下所示:

public class MyUtil{
    public static String percentage2fivegrade(int grade){
        //如果成绩小于0,转成“错误”
        if ((grade < 0))
            return "错误";
            
        else if (grade < 60)
            return "不及格";
            
        else if (grade < 70)
            return "及格";
            
        else if (grade < 80)
            return "中等";
           
        else if (grade < 90)
            return "良好";
           
        else if (grade <= 100)
            return "优秀";
           
        else
            return "错误";
    }
}

同样的道理,在生成的test包里创建一个新的类,它的名字叫做MyUtilTest,我们就是要用这个类对MyUtil进行测试。
代码如下:


import org.junit.Test;
import junit.framework.TestCase;
public class MyUtilTest extends TestCase {
    @Test
    public void testNormal() {
        assertEquals("不及格", MyUtil.percentage2fivegrade(55));
        assertEquals("及格", MyUtil.percentage2fivegrade(65));
        assertEquals("中等", MyUtil.percentage2fivegrade(75));
        assertEquals("良好", MyUtil.percentage2fivegrade(85));
        assertEquals("优秀", MyUtil.percentage2fivegrade(95));
    }
}

接下来,我们要对MyUtil类进行测试,相应执行方法如下:

如果测试失败,在程序的左上方就会出现一个红条,证明程序出现了问题。后来发现,是不及格分数定义那里出现了问题:

将上面红框哪里的分数改为60,再运行一遍那个程序,就会出现绿条,证明程序测试成功了:

  • 本章程序练习:
    本章的练习题是编写一个复数类。在这里我编写了一个实现复数类运算的简单程序,并按照实验要求编写了测试代码:

伪代码:

Complex类要输出实部,输出虚部,并按照a+bi的形式输出复数。

Complex类中有两个变量,实部RealPart和虚部ImaginaryPart。

实现复数类的产品代码:

public class complex {

   //实部realpart,虚部imaginPart
   private double realPart;
   private double imaginPart;
 

   //复数类Complex()构造函数,将实部虚部都置为0
   public complex(){
           this.realPart = 0;
           this.imaginPart = 0;
    }


   //Complex(double r,double i)创建复数对象的同时完成复数的实部,虚部的初始化
   public complex(double r,double i){
          this.realPart = r;
          this.imaginPart = i;
   }


   //getRealPart()获取实部
   public double getRealPart(){
         return realPart;
   }


   //getImaginaryPart()获取虚部
   public double getImaginaryPart(){
          return imaginPart;
   }


   //setRealPart(double d)设置实部
   public void setRealPart(double d){
         this.realPart = d;
   }


   //setImaginaryPart(double d)设置虚部
         public void setImaginaryPart(double d){
         this.imaginPart = d;
   }


   //add(Complex c)复数相加
          public void add(complex c1,complex c2){
          complex c = new complex(c1.realPart+c2.realPart,c1.imaginPart+c2.imaginPart);
           print(c);
   }


   //minus(Complex c)复数相减
  public void minus(complex c1,complex c2){
         complex c = new complex(c1.realPart-c2.realPart,c1.imaginPart-c2.imaginPart);
         print(c);
  }


  //ComplexMulti(Complex c)复数相乘
        public void ComplexMulti(complex c1,complex c2){
        complex c = new complex(c1.realPart*c2.realPart-c1.imaginPart*c2.imaginPart,c1.realPart*c2.imaginPart+c1.imaginPart*c2.realPart);
        print(c);
  }


  //toString()把当前复数对象的实部,虚部组合成a+bi的字符串形式
  public void print(complex c){
        double a = c.realPart;
        double b = c.imaginPart;
        System.out.println(a+"+"+b+"i");	
  }

}

测试这个类的代码是:

import org.junit.Test;

import junit.framework.TestCase;


    public class complextest extends complex {

          @Test
          public void printTest(){
          complex c1 = new complex(3.5,9);
          complex c2 = new complex(9,23);
          complex c = new complex();
          c.ComplexMulti(c2, c1);
          c.add(c1, c2);
          c.minus(c1, c2);
    }

}

代码编好后,在eclipse上运用TDD模式测试一下代码,出现了绿条:

证明程序测试成功了。代码是比较完善的。

  • 实验感想总结:
    在本次试验中,我们学习了Java代码的单元测试,知道了怎样去编写出更完整的代码,在不断地单元测试改进中,代码的稳定性越来越高,这也是成为优秀的程序员的必经之路。
posted @ 2016-04-16 18:01  20145107lcd  阅读(164)  评论(2编辑  收藏  举报