Eclipse中使用JUnit进行单元测试
2016-07-20 11:49
549 查看
使用JUnit可以方便地对类的方法进行测试,通过比较方法的返回值与期望值是否相等来判断方法是否正确。
Step1.新建Java工程,添加一个待测试的类Calculator,实现简单的加减乘除。注意,待测试的方法都应该是public。
Step2.在Package Explorer中对Calculator.java右击->New->JUnit Test Case,见下图设置界面。
选择Junit4
Name默认为待测类类名+Test
勾选setUp()和tearDown(),分别用于测试前的初始化和善后
待测类为右击选中的Calculator
点击Next,见如下界面,勾选需要测试的方法,点击Finish
如果工程未添加JUnit的包,那Eclipse会提示添加:
添加Junit包后可以看到Junit包的位置:
自动生成的测试类CalculatorTest.java如下:
对测试类CalculatorTest进行完善和解释如下:
setUp()与tearDown()分别用于测试前的初始化和善后
JUnit会按顺序执行测试类中标记为@Test的每个方法,方法名不一定要与待测类对应,如上述代码中的Test5()
assertEquals(expected, actual)方法用于断言实际值与期望值是否一致。当比较double值时使用assertEquals(double expected, double actual, double delta)方法,其中delta是误差,在误差范围内认为double值相等,如上述代码所示。
Step3. Java工程Run as -> Junit Test,可以看到测试结果。
如上图所示,testSub()打叉表示错误,期望值是<0.0>,但实际值是<1.0>,所以应该检查testSub()中的c.sub(1.0, 1.0)方法正确性。
至此,完成JUnit的单元测试。
Step1.新建Java工程,添加一个待测试的类Calculator,实现简单的加减乘除。注意,待测试的方法都应该是public。
public class Calculator { public double add(double a, double b) { return a + b; } public double sub(double a, double b) { return a - b + 1;//假设程序错误 } public double multi(double a, double b) { return a * b; } public double div(double a, double b) { return a / b; } }
Step2.在Package Explorer中对Calculator.java右击->New->JUnit Test Case,见下图设置界面。
选择Junit4
Name默认为待测类类名+Test
勾选setUp()和tearDown(),分别用于测试前的初始化和善后
待测类为右击选中的Calculator
点击Next,见如下界面,勾选需要测试的方法,点击Finish
如果工程未添加JUnit的包,那Eclipse会提示添加:
添加Junit包后可以看到Junit包的位置:
自动生成的测试类CalculatorTest.java如下:
import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; public class CalculatorTest { @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void testAdd() { fail("Not yet implemented"); } @Test public void testSub() { fail("Not yet implemented"); } @Test public void testMulti() { fail("Not yet implemented"); } @Test public void testDiv() { fail("Not yet implemented"); } }
对测试类CalculatorTest进行完善和解释如下:
import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; public class CalculatorTest { private Calculator c;//声明 @Before public void setUp() throws Exception { // setUp()用于测试前的初始化 c = new Calculator(); } @After public void tearDown() throws Exception { // tearDown()用于测试后的善后 c = null; } @Test public void testAdd() { // assertEquals()用于断言测试结果 assertEquals(2.0, c.add(1.0, 1.0), 0.0000f); } @Test public void testSub() { assertEquals(0.0, c.sub(1.0, 1.0), 0.0000f); } @Test public void testMulti() { assertEquals(1.0, c.multi(1.0, 1.0), 0.0000f); } @Test public void testDiv() { assertEquals(3.0, c.div(3.0, 1.0), 0.0000f); } @Test public void test5() { //其他方法 assertTrue(!false); } }
setUp()与tearDown()分别用于测试前的初始化和善后
JUnit会按顺序执行测试类中标记为@Test的每个方法,方法名不一定要与待测类对应,如上述代码中的Test5()
assertEquals(expected, actual)方法用于断言实际值与期望值是否一致。当比较double值时使用assertEquals(double expected, double actual, double delta)方法,其中delta是误差,在误差范围内认为double值相等,如上述代码所示。
Step3. Java工程Run as -> Junit Test,可以看到测试结果。
如上图所示,testSub()打叉表示错误,期望值是<0.0>,但实际值是<1.0>,所以应该检查testSub()中的c.sub(1.0, 1.0)方法正确性。
至此,完成JUnit的单元测试。
相关文章推荐
- javaMail
- Read / Write Locks in Java
- java 函数的重载和重写实例代码
- 斐波那契数列
- java静态方法能否被重写
- EntityManager使用方法 JPL JPQL
- Java中基本类型和封装类型数据与堆、栈的关系
- Java判断3个数中最大的
- java web中文乱码处理
- Java判断两个数的大小
- Eclipse Java代码折叠插件 Code Folding
- RxJava 简易上手指南
- Spring中拦截/和拦截/*的区别 - 不能访问到返回的JSP - 访问静态资源(jpg,js等)
- javax.el.ELException
- JAVA比较器排序及对比自然排序
- 使用Java辅助类(CountDownLatch、CyclicBarrier、Semaphore)并发编程
- SpringMVC从Controller跳转到另一个Controller
- java学习(一):java的编译和执行
- java程序中动态加载jar包并执行
- spring Model 传递参数的值