作业八—三角形判断单元测试体会

   测试用例

   (含有“()”号的为错误预言)

序号

测试输入三条边:a,b,c)

测试预言

(Oracle:Illegal,Regular,Scalene,Isoceles)

4  (0.6.5)  Illegal
5  (4,2,3)  Scalence
6  (4,4,4)  Regular
7  (-2,-2,-2)  Illegal
8  (3,3,5)  Isoceles
9  (-2,-2,-2)  (Regular)
10  (3,3,6)  (Isoceles)
11  (1,2,3)  (Scalene)

 根据预测用例表,写出如下的测试函数:

       @Test
        public void testlsTringle4(){
            Triangle t=new Triangle(0,6,5);
            assertEquals(t.getType(t),"Illegal");
        }
        @Test
        public void testlsTringle5(){
            Triangle t=new Triangle(4,3,2);
            assertEquals(t.getType(t),"Scalene");
        }
        @Test
        public void testlsTringle6(){
            Triangle t=new Triangle(4,4,4);
            assertEquals(t.getType(t),"Regular");
        }
        @Test
        public void testlsTringle7(){
            Triangle t=new Triangle(-2,-2,-2);
            assertEquals(t.getType(t),"Illegal");
        }
        @Test
        public void testlsTringle8(){
            Triangle t=new Triangle(3,3,5);
            assertEquals(t.getType(t),"Isoceles");
        }
       @Test
        public void testlsTringle9(){
            Triangle t=new Triangle(-2,-2,-2);
            assertEquals(t.getType(t),"Regular");
        }
        @Test
        public void testlsTringle10(){
            Triangle t=new Triangle(3,3,6);
            assertEquals(t.getType(t),"Isoceles");
        }
        @Test
        public void testlsTringle11(){
            Triangle t=new Triangle(1,2,3);
            assertEquals(t.getType(t),"Scalene");
        }
        

     运行测试类,得到测试结果为:

     结果显示(由于函数名和测试用例表一一对应),4-8运行通过,结果达到预期,9-11结果与预期不符。跟我的预期设想一致。

体会:

     设计测试用例时,根据等价划分,何以分为四类:即非法三角形,一般三角形,等腰三角形,等边三角形。而我增加9-11用例是为了测试特殊输入数据,比如(3,3,6)。若输出为等腰,说明没有进行合法性判断,在测试函数中进行assertEquals(t.getType(t),"Isoceles")产生错误。

     在Eclipse2014版本中,我用的是它的JUnit4,测试方法选中isTriangle(long,long,long)和getType(Triangle)。在测试方法前注明@Teat,表明是测试,而且测试函数必须是Void类型的,且不含任何参数。

     在这次测试中,我使用的是测试类的assertEquals方法(import static org.junit.Assert.*),用来判断实际结果和预期是否一致。

原文地址:https://www.cnblogs.com/mzfeng/p/5492451.html