Lab 1:
一、junit, hamcrest and eclemma 的安装
- 安装junit,hamcrest;
a) 添加外部jar。下载junit-4.12.jar(http://central.maven.org/maven2/junit/junit/4.12/junit-4.12.jar)和hamcrest-all-1.3.jar(http://central.maven.org/maven2/org/hamcrest/hamcrest-all/1.3/hamcrest-all-1.3.jar)。
b) 在新建的项目上:右键->properties->Java Build Path->Libraries->Add External JARs->选择下载的junit-4.12.jar和hamcrest-all-1.3.jar->OK。
2.安装eclemma;
a)下载eclemma-2.3.3。
b) 选择eclipce菜单栏:Help->Install New Software->Add->Local->选择下载的eclemma-2.3.3->确定->OK->Select All->Next->Finish。
二、Write a java program for the triangle problem and test the program with Junit.
a) Description of triangle problem:
Function triangle takes three integers a,b,c which are length of triangle sides; calculates whether the triangle is equilateral, isosceles, or scalene.
Answer:
Triangle.java:
1 package jUnitTest;
2
3 public class Triangle {
4 public String check(int a, int b, int c){
5 String result = "";
6 if(a == b && b == c){
7 result = "该三角形为等边三角形";
8 }else if(a == b || a == c || b ==c){
9 result = "该三角形为等腰三角形";
10 }else if(a + b > c && a + c > b && b + c > a){
11 result = "该三角形为不等边三角形";
12 }else{
13 result = "这不是一个三角形";
14 }
15
16 return result;
17 }
18
19 }
testTriangle.java
1 package jUnitTest;
2
3 import static org.junit.Assert.*;
4
5 import org.junit.Test;
6
7 public class testTriangle{
8 Triangle triangle = new Triangle();
9 String equilateral = "该三角形为等边三角形";
10 String isosceles = "该三角形为等腰三角形";
11 String scalene = "该三角形为不等边三角形";
12 String nonATriangle = "这不是一个三角形";
13 String result;
14
15 @Test
16 public void testEquilateral(){
17 result = triangle.check(3, 3, 3);
18 assertEquals(equilateral, result);
19 }
20
21 @Test
22 public void testIsosceles(){
23 result = triangle.check(3, 1, 3);
24 assertEquals(isosceles, result);
25 }
26
27 @Test
28 public void testScalene(){
29 result = triangle.check(2, 3, 4);
30 assertEquals(scalene, result);
31 }
32
33 @Test
34 public void testNonTri(){
35 result = triangle.check(3, 2, 5);
36 assertEquals(nonATriangle, result);
37 }
38
39 }
测试结果:
附加:测试用例2及测试结果: