一、简单描述下安装 junit, hamcrest and eclemma的过程
①当然,有了eclipse软件,安装的过程会显得比较轻松
对于安装junit和hamcrest来说需要在官网(或者其它渠道)上面下载标准的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上面去了