• 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代码的单元测试,知道了怎样去编写出更完整的代码,在不断地单元测试改进中,代码的稳定性越来越高,这也是成为优秀的程序员的必经之路。
  • 相关阅读:
    超简单tensorflow入门优化程序&&tensorboard可视化
    tf.random_normal()函数
    tensorflow中创建多个计算图(Graph)
    tensorflow中有向图(计算图、Graph)、上下文环境(Session)和执行流程
    配置错误 在唯一密钥属性“fileExtension”设置为“.log”时,无法添加类型为“mimeMap”的重复集合项
    取奇偶数
    DNS添加/修改/查询/删除A记录
    IE自动化
    Get-ChildItem参数之 -Exclude,Filter,Recurse应用
    自动下载
  • 原文地址:https://www.cnblogs.com/20145107lcd/p/5392738.html
Copyright © 2020-2023  润新知