[Test]Junit 4初级指南
2011-12-22 14:01
561 查看
我的独立blog, 原文链接:http://www.wangyuxiong.com/archives/51476
Junit是什么我觉得没有必要再说了,这里只是简单介绍一下我们的使用的场景,算是简单入门级的东西,所以,已经使用过或者了解过,可以移步啦!
1.1 从https://github.com/KentBeck/junit/downloads 上下载你需要的junit,目前版本已经到4.10,我这里选择最新版下载,顺便了解一下annotations
。
右键你的工程名,点击属性,弹出属性对话框,找到Java Build Path。选择source tab栏,最后点击Add Folder,建一个test的文件夹。
在src文件夹下,新建一个com.lifeware.sample的包和下面的类:
右键你刚刚新建的class,弹出的菜单中选择新建一个测试类,需要将测试类的存放位置改为test folder。
点击”Next”,就可以选择需要对那些方法进行测试。
如果junit并不在的你的classpath中,则会弹出这样的对话框,确定即可:
右键你刚写好的测试类,依次点击: Run As—> Junit Test. 如下所示:
运行的结果如下图所示:
假设有多个test class需要进行测试,那么我们可以将一些class放到一个suite进行管理,所以,我们先创建一个suite:
右键这些 test classes: New → Other → JUnit → Test Suite, 如下图所示.
Next下去,选择你需要合并的test 。在新建的一个AllTests类的suite里,代码如下:
@RunWith(Suite.class)
@Suite.SuiteClasses( { OperatorTest.class })
public class AllTests {
}
除了向刚才那样在eclipse下运行我们的test case之外,我们也可以通过写执行代码来运行我们的cases。
org.junit.runner.JUnitCore 提供了一个runClasses()的方法,这个方法可以让我们运行我们的cases。
在test folder下新建一个类,MyTestRunner,代码如下:
运行该程序,我们可以在控制台下看到失败cases的错误信息。
Junit是什么我觉得没有必要再说了,这里只是简单介绍一下我们的使用的场景,算是简单入门级的东西,所以,已经使用过或者了解过,可以移步啦!
1. 环境搭建
1.1 从https://github.com/KentBeck/junit/downloads 上下载你需要的junit,目前版本已经到4.10,我这里选择最新版下载,顺便了解一下annotations。
2. 使用JUnit
2.1 新建一个工程”FirstSample”.
2.2 将测试类和被测对象分离
右键你的工程名,点击属性,弹出属性对话框,找到Java Build Path。选择source tab栏,最后点击Add Folder,建一个test的文件夹。
2.3 新建一个java类
在src文件夹下,新建一个com.lifeware.sample的包和下面的类:packagecom.lifeware.sample;public class Operator { public int add(int a,int b){ return a+b; } public int multiply(int a,int b){ return a/b; } } |
2.4 新建一个测试类
右键你刚刚新建的class,弹出的菜单中选择新建一个测试类,需要将测试类的存放位置改为test folder。点击”Next”,就可以选择需要对那些方法进行测试。
如果junit并不在的你的classpath中,则会弹出这样的对话框,确定即可:
2.5 编写测试代码
package com.lifeware.sample; import static org.junit.Assert.*; import org.junit.Test; public class OperatorTest { @Test public void testAdd() { Operator op = new Operator(); assertEquals(3,op.add(1, 2)); }@Test public void testMultiply() { Operator op = new Operator(); assertEquals(2,op.multiply(10, 5)); } } |
2.6 在Eclipse下运行你的测试案例
右键你刚写好的测试类,依次点击: Run As—> Junit Test. 如下所示:运行的结果如下图所示:
2.7 对多个tests进行合并的方法
假设有多个test class需要进行测试,那么我们可以将一些class放到一个suite进行管理,所以,我们先创建一个suite:右键这些 test classes: New → Other → JUnit → Test Suite, 如下图所示.
Next下去,选择你需要合并的test 。在新建的一个AllTests类的suite里,代码如下:
package com.lifeware.sample; import org.junit.runners.Suite; import org.junit.runner.RunWith; import org.junit.runners.Suite; |
@Suite.SuiteClasses( { OperatorTest.class })
public class AllTests {
}
2.8 用代码来运行tests
除了向刚才那样在eclipse下运行我们的test case之外,我们也可以通过写执行代码来运行我们的cases。org.junit.runner.JUnitCore 提供了一个runClasses()的方法,这个方法可以让我们运行我们的cases。
在test folder下新建一个类,MyTestRunner,代码如下:
package com.lifeware.sample; import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class MyTestRunner { /** * @param args */ public static void main(String[] args) { Result result = JUnitCore.runClasses(OperatorTest.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } } } |
3. 更多Junit的特性
3.1 Annotations
Annotation | Description |
@Test public void method() | 该方法为test方法 |
@Before public void method() | 在每个test之前执行的方法,一般用于初始化环境 |
@After public void method() | 在每个test之后执行的方法,一般用于清理环境 |
@BeforeClass public void method() | 执行一次,所有方法之前执行 |
@AfterClass public void method() | 执行一次,所有方法之后执行 |
@Ignore public void method() | 忽略该test方法 |
@Test(expected=IllegalArgumentException.class) public void method() | 如果没有抛出异常,则fail |
@Test(timeout=100) | 如果超时,则fails |
3.2 Assert statements
statements | Description |
fail(String) | |
assertTrue(true) / assertTrue(false) | |
assertsEquals([String [message], expected, actual) | 验证是否相等 |
assertsEquals([String [message], expected, actual, tolerance) | 验证在允许的范围内,2值是否相等 |
assertNull([message], object) | 验证object是否为null |
assertNotNull([message], object) | 验证object是否为null |
assertSame([String], expected, actual) | 验证2值的object是否相同 |
assertNotSame([String], expected, actual) | 验证2值的object是否相同 |
assertTrue([message], boolean condition) | 验证condition是否为true |
相关文章推荐
- SOAP协议初级指南 (一)
- [Test]JMock的使用指南
- Spring Test 整合 JUnit 4 使用总结
- 小块头有大智慧---TreeView初级使用指南
- Android - JUnit Test(单元测试)
- 单元测试代码:SpringTest+JUnit
- 单元测试代码:SpringTest+JUnit
- SOAP协议初级指南(8)
- Spring Test 整合 JUnit 4 使用总结
- 使用junit 测试 spring 的testContext框架
- junit.framework.AssertionFailedError: No tests found in com.hyh.test.MainTest
- JunitTest ----2
- Edgame maker 编程初级指南
- 低保真原型初级指南
- DirectShow系统初级指南
- 数字格式化DecimalFormat_JunitTest_Case
- Spring Test 整合 JUnit 4 使用总结
- Apache模块 mod_rewrite 及 初级URL重写指南
- Class not found Test.TestHibernateJunit