使用JUnit进行单元测试

Profile:

JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks.

由于使用的eclipse版本自带了JUnit所以不用下载即可使用,如果要下载可在官网junit.org下载jar包。

下面是一个简单的计算器程序:

先编写计算器接口ICalculator.java用于描述功能:

 1 package Calculate;
 2 
 3 public interface ICalculator {
 4     
 5     public double add(double arg1, double arg2);
 6     
 7     public double subtract(double arg1, double arg2);
 8     
 9     public double division(double arg1, double arg2);
10     
11     public double multiply(double arg1, double arg2);
12     
13 }

在编写接口实现类Calculator.java:

 1 package Calculate;
 2 
 3 public class Calculator implements ICalculator {
 4 
 5     @Override
 6     public double add(double arg1, double arg2) {
 7         
 8         return arg1 + arg2;
 9     }
10 
11     @Override
12     public double subtract(double arg1, double arg2) {
13         
14         return arg1 - arg2;
15     }
16 
17     @Override
18     public double division(double arg1, double arg2) {
19         
20         return arg1/arg2;
21     }
22 
23     @Override
24     public double multiply(double arg1, double arg2) {
25         
26         return arg1*arg2;
27     }
28 
29 }

点击项目右键新建junit test case创建测试类CalculateTest.java,选择对应的包和要测试的类:

 1 package Calculate;
 2 
 3 import static org.junit.Assert.*;
 4 
 5 import org.junit.Before;
 6 import org.junit.Test;
 7 
 8 public class CalculateTest {
 9 
10     private ICalculator _calculator = new Calculator();
11     
12     @Before
13     public void setUp() throws Exception {
14     }
15 
16     @Test
17     public void testAdd() {
18         assertEquals(5, _calculator.add(2, 3), 0);
19         assertEquals(5, _calculator.add(3, 2), 0);
20         assertEquals(2, _calculator.add(2, 0), 0);
21         assertEquals(2, _calculator.add(0, 2), 0);
22         assertEquals(0, _calculator.add(0, 0), 0);
23         assertNotEquals(0, _calculator.add(0, 2));
24     }
25 
26     @Test
27     public void testSubtract() {
28         assertEquals(5, _calculator.subtract(10, 5), 0);
29         assertEquals(5, _calculator.subtract(5, 0), 0);
30         assertEquals(-5, _calculator.subtract(0, 5), 0);
31         assertEquals(0, _calculator.subtract(0, 0), 0);
32     }
33 
34     @Test
35     public void testDivision() {
36         assertEquals(0, _calculator.division(5, 0), 0);
37         assertEquals(0, _calculator.division(0, 5), 0);
38         assertEquals(2.5, _calculator.division(5, 2), 0);
39         assertEquals(5, _calculator.division(10, 2), 0);
40     }
41 
42     @Test
43     public void testMultiply() {
44         assertEquals(0, _calculator.multiply(2, 0), 0);
45         assertEquals(4, _calculator.multiply(2, 2), 0);
46         assertEquals(0, _calculator.multiply(0, 0), 0);
47         assertNotEquals(2, _calculator.multiply(2, 0));
48         assertNotEquals(0, _calculator.multiply(5.0, 0));
49     }
50 
51 }

写完测试用例后,右键CalculateTest.java 点击Run as->JUnit Test即可,下面是结果截图:

从测试结果可以看到,add, subtract, multipy是通过测试的,division没通过。

代码github地址:https://github.com/GreenLim/JUnitTest

原文地址:https://www.cnblogs.com/greensoo/p/4536844.html