在ECLIPSE中使用JUNIT4.X进行单元测试
2013-07-17 15:33
281 查看
摘要
这篇文章简单讲解了如何在Eclipse中利用Junit 4.x和EasyMock进行单元测试。
当你阅读完这篇文章后,可以在Eclipse中使用JUnit进行单元测试。
单元测试开发人员写的用于测试某一个功能的代码。单元测试可以保证程序的功能正常使用。
JUnit 4.x 是一个自动化测试的框架,最初的作者是Erich Gamma and Kent Beck。它使用Java的annotation特性来标记出需要进行测试的方法。
在JUnit中,有一个非常重要的约定:所有的测试用例都不应该依赖于其他的测试用例。
下载JUnit4.x.jar可以去JUnit的官网here,并且将其添加到classpath中。
现在的Eclipse版本中已经整合了Junit,你可以直接使用。
JUnit 使用annotations来区别需要进行测试的方法。
编写一个测试用例:
给需要测试的方法加上annotations:@org.JUnit.Test
如果你希望检测2个对象是否相等,使用org.JUnit.Assert.*,并调用assertEquals()。
Static imports在Java 5.0或以上版本是有效的,如:import static org.junit.Assert.*
编写Java代码:
在Eclipse的菜单栏中选择:Run As -> JUnit test
Eclipse将通过绿色和红色的状态栏显示运行的结果。
创建一个全新的项目"de.vogella.junit.junittest"。添加一个lib目录,将junit4.jar添加到classpath中,由于现在eclipse里已内置了jutil,所在可以在项目属性里通过添加库(add libary)的方式添加jutil引用。
接着创建一个test的源代码文件夹
创建一个包 "gpcuster.cnblog.com"。
在包 "gpcuster.cnblog.com"中创建一个类"MyClass" 代码如下:
选中你需要测试的类,然后操作New ->JUnit Test case,再选择"New JUnit 4 test":
如果你还没有将JUnit放到你的classpath中,Eclipse将询问你是否将其加入classpath中:
测试类的代码如下:
鼠标右击测试类,然后选择Run-As-> Junit Test。
测试结果如图所示,你可以修改代码中存在的问题,然后再次运行。如果成功,将看到绿色的状态栏。
如果需要测试的用例很多,我们可以创建一个测试集,包含所有需要进行测试的测试用例。
选项需要测试的类,然后鼠标右击:New-> Other -> JUnit -Test Suite
创建的代码如下:
对于每一个测试用例,你都可以实现setUp()和tearDown(). setUp在每一个测试用例初始化的时候被调用。tearDown()在每一个测试用例结束的时候被调用。
Junit中大量使用了static方法。
Eclipse无法自动导入static imports。
你需要做的是将'org.junit.Assert'导入到Java > Editor > Content Assist > Favorites中。当你这么做了以后,你可以使用Content Assist (Ctrl+Space) 来添加方法。
JUnit 4.x中Annotations的使用如下:
表1. Annotations
JUnit 4.x中Assert语句的使用如下:
表2. Assert语句
=========================================================================
一、写测试目标(业务相关的类)
/**
*
* 测试对象
* User: leizhimin
* Date: 2008-3-13 14:58:58
*/
public class Calcuator
{
public double add(double n1, double n2)
{
return n1 + n1;
}
}
二、写测试用例
import junit.framework.TestCase;
/**
* 测试用例
* File: TestCalcuator.java
* User: leizhimin
* Date: 2008-3-13 15:00:17
*/
public class TestCalcuator extends TestCase
{
public void testAdd(){
Calcuator calcuator=new Calcuator();
double result=calcuator.add(1,2);
assertEquals(3,result,0);
}
}
import junit.framework.TestCase;
/**
* 测试用例
* File: TestCalcuator2.java
* User: leizhimin
* Date: 2008-3-13 16:13:29
*/
public class TestCalcuator2 extends TestCase {
public void testAdd(){
Calcuator calcuator=new Calcuator();
double result=calcuator.add(1,2);
assertEquals(3,result,0);
}
}
三、写测试单元
import junit.framework.TestSuite;
import junit.framework.Test;
import junit.textui.TestRunner;
/**
* 测试单元
* File: TestAll.java
* User: leizhimin
* Date: 2008-3-13 16:17:10
*/
public class TestAll extends TestSuite
{
public static Test
suite() {
TestSuite suite = new TestSuite("TestSuite
Test");
suite.addTestSuite(TestCalcuator.class);
suite.addTestSuite(TestCalcuator2.class);
return suite;
}
public static void main(String
args[]){
TestRunner.run(suite());
}
}
四、运行单元测试的main()方法
控制台打印出结果如下:
..
Time: 0
OK (2 tests)
Process finished with exit code 0
运行图形界面显示结果:
这篇文章简单讲解了如何在Eclipse中利用Junit 4.x和EasyMock进行单元测试。
当你阅读完这篇文章后,可以在Eclipse中使用JUnit进行单元测试。
1. 概要
1.1. 单元测试
单元测试开发人员写的用于测试某一个功能的代码。单元测试可以保证程序的功能正常使用。JUnit 4.x 是一个自动化测试的框架,最初的作者是Erich Gamma and Kent Beck。它使用Java的annotation特性来标记出需要进行测试的方法。
在JUnit中,有一个非常重要的约定:所有的测试用例都不应该依赖于其他的测试用例。
1.2. 安装
下载JUnit4.x.jar可以去JUnit的官网here,并且将其添加到classpath中。现在的Eclipse版本中已经整合了Junit,你可以直接使用。
2. 如何编写单元测试
2.1. 概览
JUnit 使用annotations来区别需要进行测试的方法。编写一个测试用例:
给需要测试的方法加上annotations:@org.JUnit.Test
如果你希望检测2个对象是否相等,使用org.JUnit.Assert.*,并调用assertEquals()。
Static imports在Java 5.0或以上版本是有效的,如:import static org.junit.Assert.*
2.2. 编写你的第一个单元测试
编写Java代码:package gpcuster.cnblogs.com; import static org.junit.Assert.assertEquals; import org.junit.Test; public class MyFirstJUnitTest { @Test public void simpleAdd() { int result = 1; int expected = 1; assertEquals(result, expected); } }
2.3. 在Eclipse中运行你的单元测试
在Eclipse的菜单栏中选择:Run As -> JUnit testEclipse将通过绿色和红色的状态栏显示运行的结果。
3. 在ECLIPSE中使用JUNIT
3.1. 准备
创建一个全新的项目"de.vogella.junit.junittest"。添加一个lib目录,将junit4.jar添加到classpath中,由于现在eclipse里已内置了jutil,所在可以在项目属性里通过添加库(add libary)的方式添加jutil引用。接着创建一个test的源代码文件夹
3.2. 创建一个需要测试的类
创建一个包 "gpcuster.cnblog.com"。在包 "gpcuster.cnblog.com"中创建一个类"MyClass" 代码如下:
package gpcuster.cnblogs.com; public class MyClass { public int multiply(int x, int y) { return x / y; } }
3.3. 创建一个测试类
选中你需要测试的类,然后操作New ->JUnit Test case,再选择"New JUnit 4 test":如果你还没有将JUnit放到你的classpath中,Eclipse将询问你是否将其加入classpath中:
测试类的代码如下:
import static org.junit.Assert.assertEquals; import org.junit.Test; public class MyClassTest { @Test public void testMultiply() { MyClass tester = new MyClass(); assertEquals("Result", 50, tester.multiply(10, 5)); } }
鼠标右击测试类,然后选择Run-As-> Junit Test。
测试结果如图所示,你可以修改代码中存在的问题,然后再次运行。如果成功,将看到绿色的状态栏。
3.4. 创建测试集
如果需要测试的用例很多,我们可以创建一个测试集,包含所有需要进行测试的测试用例。选项需要测试的类,然后鼠标右击:New-> Other -> JUnit -Test Suite
创建的代码如下:
package gpcuster.cnblogs.com; import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses( { MyClassTest.class }) public class AllTests { }
4. 进一步了解JUNIT
4.1. setUp()与tearDown()
对于每一个测试用例,你都可以实现setUp()和tearDown(). setUp在每一个测试用例初始化的时候被调用。tearDown()在每一个测试用例结束的时候被调用。
4.2. 在Eclipse中使用Static imports
Junit中大量使用了static方法。Eclipse无法自动导入static imports。
你需要做的是将'org.junit.Assert'导入到Java > Editor > Content Assist > Favorites中。当你这么做了以后,你可以使用Content Assist (Ctrl+Space) 来添加方法。
4.3. Annotations
JUnit 4.x中Annotations的使用如下:Annotation | 描述 |
@Test public void method() | 需要被测试的方法。 |
@Before public void method() | 在每一个测试用例执行前,需要调用的方法。 |
@After public void method() | 在每一个测试用例执行后,需要调用的方法。 |
@BeforeClass public void method() | 所有测试用例执行前,需要调用的方法。 |
@AfterClass public void method() | 所有测试用例执行后,需要调用的方法。 |
@Ignore | 忽略该测试的方法。 |
@Test(expected=IllegalArgumentException.class) | 期望测试用例抛出指定的异常。 |
@Test(timeout=100) | 测试用例期望的执行时间。 |
4.4. Assert语句
JUnit 4.x中Assert语句的使用如下:Assert语句 | 描述 |
fail(String) | 方法失败。 |
assertTrue(true) | 检测是否为真。 |
assertsEquals([String message], expected, actual) | 检测2个对象是否相等 |
assertsEquals([String message], expected, actual, tolerance) | 检测2个对象在允许的精度范围内是否相等。 |
assertNull([message], object) | 检测是否为空。 |
assertNotNull([message], object) | 检测是否为非空。 |
assertSame([String], expected, actual) | 检测2个对象是否是为一个对象。 |
assertNotSame([String], expected, actual) | 检测2个对象是否是为非一个对象。 |
assertTrue([message], boolean condition) | 检测是否为真。 |
try {a.shouldThroughException(); fail("Failed")} catch (RuntimeException e) {asserttrue(true);} | 检测是否抛出异常。 |
一、写测试目标(业务相关的类)
/**
*
* 测试对象
* User: leizhimin
* Date: 2008-3-13 14:58:58
*/
public class Calcuator
{
public double add(double n1, double n2)
{
return n1 + n1;
}
}
二、写测试用例
import junit.framework.TestCase;
/**
* 测试用例
* File: TestCalcuator.java
* User: leizhimin
* Date: 2008-3-13 15:00:17
*/
public class TestCalcuator extends TestCase
{
public void testAdd(){
Calcuator calcuator=new Calcuator();
double result=calcuator.add(1,2);
assertEquals(3,result,0);
}
}
import junit.framework.TestCase;
/**
* 测试用例
* File: TestCalcuator2.java
* User: leizhimin
* Date: 2008-3-13 16:13:29
*/
public class TestCalcuator2 extends TestCase {
public void testAdd(){
Calcuator calcuator=new Calcuator();
double result=calcuator.add(1,2);
assertEquals(3,result,0);
}
}
三、写测试单元
import junit.framework.TestSuite;
import junit.framework.Test;
import junit.textui.TestRunner;
/**
* 测试单元
* File: TestAll.java
* User: leizhimin
* Date: 2008-3-13 16:17:10
*/
public class TestAll extends TestSuite
{
public static Test
suite() {
TestSuite suite = new TestSuite("TestSuite
Test");
suite.addTestSuite(TestCalcuator.class);
suite.addTestSuite(TestCalcuator2.class);
return suite;
}
public static void main(String
args[]){
TestRunner.run(suite());
}
}
四、运行单元测试的main()方法
控制台打印出结果如下:
..
Time: 0
OK (2 tests)
Process finished with exit code 0
运行图形界面显示结果:
相关文章推荐
- 在Eclipse中使用JUnit4进行单元测试(中级篇)
- 在Eclipse中使用JUnit4进行单元测试(中级篇)
- 在Eclipse中使用JUnit4进行单元测试(中级篇)
- 在Eclipse中使用JUnit4进行单元测试(初级篇)
- 在Eclipse中使用JUnit4进行单元测试(初级篇)
- 在Eclipse中使用JUnit4进行单元测试(初级篇)
- 在Eclipse中使用JUnit4进行单元测试(初级篇)
- [转]在Eclipse中使用JUnit4进行单元测试(中级篇)
- 在Eclipse中使用JUnit4进行单元测试(初级篇)
- 在Eclipse中使用JUnit4进行单元测试(中级篇)
- 在Eclipse中使用JUnit4进行单元测试(初级篇)
- 在Eclipse中使用JUnit4进行单元测试(初级篇)
- 在Eclipse中使用JUnit4进行单元测试(1)
- 在Eclipse中使用JUnit4进行单元测试(高级篇)
- 在Eclipse中使用JUnit4进行单元测试(初级篇)
- [JAVA]在Eclipse中使用JUnit4进行单元测试-1
- 在Eclipse中使用JUnit4进行单元测试(图文教程一)
- 在Eclipse中使用JUnit4进行单元测试
- 在Eclipse中使用JUnit4进行单元测试
- 在Eclipse中使用JUnit4进行单元测试(图文教程一)