软件测试实验一——使用junit判断三角形

一、简单描述下安装 junit, hamcrest and eclemma的过程

①当然,有了eclipse软件,安装的过程会显得比较轻松

对于安装junithamcrest来说需要在官网(或者其它渠道)上面下载标准的jar包即可。

以上可以得到相应版本的jar文件,我使用的是hamcrest-core-1.3.jar和junit-4.10.jar

再在eclipse软件中创建一个新的项目名叫softwareTest,右键项目的属性,在java build path中将这两个文件引入

检验方法可以在运行的run as菜单下看到有Junit Test操作即可。

②安装eclemma可以在eclipse软件的帮助菜单下找到eclipse marketplace输入eclemma点击安装即可,检验的方法可以右键这个项目,看到有Coverage As的操作

eclemma主要是对测试覆盖进行系统的检测,用明显的颜色来区分代码是否运行到每一行。

 

二、对三角形的问题进行单元测试的编写和coverage覆盖截图检测

问题描述:对于设定的整型变量a,b,c,写一些测试,判断它们以这三个构成的三角形(也有可能不能构成三角形)是不是等边、等腰或者斜角三角形

ok,老师对于我们的第一次作业要求并不是很高,只是让我们了解了java单元测试相关套件的使用,创建两个文件,一个用于编写三角形文件,一个用于编写测试用例:

Triangle.java

package test;
public class Triangle {
    public static void testTriangle(int a, int b, int c) {
        int m;
        if (a + b <= c || b + c <= a || c + a <= b)
            m = (1/0);
    }
    
    public static boolean equilateral(int a, int b, int c) {
        Triangle.testTriangle(a, b, c);
        if (a == b && b == c)
            return true;
        return false;
    }
    
    public static boolean isosceles(int a, int b, int c) {
        Triangle.testTriangle(a, b, c);
        if (a == b || b == c || c == a)
            return true;
        return false;
    }
    
    public static boolean scalene(int a, int b, int c) {
        Triangle.testTriangle(a, b, c);
        if (!(a == b && b == c && c == a))
            return true;
        return false;
    }
}
    

MainTest.java

import static org.junit.Assert.assertEquals;
import org.junit.Test;
import test.Triangle;

public class MainTest {
    /* @return value
     * for each triangle test
     * if it is not a triangle, it throws an exception
     */

    Triangle t = new Triangle();
    
    @Test()
    public void equilateralTest(){
        assertEquals(t.equilateral(2, 2, 2), true);
        assertEquals(t.equilateral(1, 2, 2), false);
    }
    
    @Test()
    public void isoscelesTest() {
        assertEquals(t.isosceles(1, 2, 2), true);
        assertEquals(t.isosceles(3, 4, 5), false);
    }
    
    @Test()
    public void scaleneTest() {
        assertEquals(t.scalene(2, 2, 1), true);
        assertEquals(t.scalene(2, 2, 2), false);
    }
    
    @Test(expected = ArithmeticException.class)
    public void isTriangle() {
        t.testTriangle(1, 2, 3);
    }
    
}

这里我使用了四个测试用例,分别测试是否为等边、等腰、斜角以及是否为三角形(不是三角形抛出异常),还是比较好理解的,最终测试用例全部通过:

测试覆盖也非常简单,点一下,玩一年。。。

整个项目代码我已经上传到我的github上面去了

posted @ 2018-03-22 21:05  萌小航  阅读(4985)  评论(0编辑  收藏  举报