前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三分钟学会 Java 单元测试

三分钟学会 Java 单元测试

作者头像
Ken Fang 方俊贤
发布2018-01-15 15:23:00
6830
发布2018-01-15 15:23:00
举报

前言:

此篇文章使用 Junit 4.0, 希望给无任何单元测试经验的开发者, 能在最短的时间内, 开展单元测试的工作◦

本文: 

学习 Junit 的测试框架是件非常容易的事,只需了解下列三件事:

1)     测试方法的宣告◦

2)     Junit 的生命周期◦

3)     断言的方法◦

I.           测试方法的宣告:

测试方法的宣告需遵循下列的规则:

a)     使用 @Test 将方法宣告为测试方法◦

b)     测试方法需为 public◦以确保可被 Junit 框架所调用◦

c)     测试方法需为 void 且无参数◦以确保各测试方法的独立性◦

代码语言:js
复制

import org.junit.Test;
import static org.junit.Assert.assertEquals;    

public class ExampleTest {

@Test

publicvoid thisIsATestMethod(){

assertEquals(5, 2 + 3);

}

@Test

public void thisIsAnotherTestMethod() {

WorldOrder newWorldOrder = new WorldOrder();

assertFalse(newWorldOrder.isComing());

}

}

II.         Junit 的生命周期:

Junit 的生命周期有下列主要的步骤:

Step 1) Junit 框架生成测试类; public class ExampleTest; 的对象◦

Step 2) Junit 框架调用测试对象中的 @Before 方法◦ 以设定测试环境, 如:生成被测对象; DefaultController( ); 或生成测试数据对象; SampleRequest()◦

Step 3) Junit 框架调用测试对象中的任一测试方法;

public void testProcessRequest() 或 public void testAddHandler()◦

因各测试方法均为独立, 所以Junit 框架先调用那个测试方法, 并不会影响各测试方法的测试结果◦

Step 4) Junit 框架调用测试对象中的 @After 方法◦ 以清除测试环境◦    

针对下一个测试方法, Junit 重复相同的生命周期 (步骤)◦

代码语言:js
复制
public class ExampleTest {

@Before

public void setLocaleForTests() {

  controller = new DefaultController();

  request = new SampleRequest();

  handler = new SampleHandler();

 }

@Test

public void testProcessRequest()  {

        Response response = controller.processRequest( request );

        assertNotNull( "Must not return a null response", response );

}

@Test

 public void testAddHandler() {

        RequestHandler handler2 = controller.getHandler( request );

        assertSame( "Controller.getHandler must return the samplehandler", handler2, handler );

    }

@After

}

III.       断言的方法:

JUnit assertions

Description

assertEquals

Asserts that two objects (or primitives) are equal

assertArrayEquals

Asserts that two arrays have the same items

assertTrue

Asserts that a statement is true

assertFalse

Asserts that a statement is false

assertNull

Asserts that an object reference is null

assertNotNull

Asserts that an object reference is not null

assertSame

Asserts that two object references point to the same instance

结论:

  Junit 的框架非常的容易使用◦ 然而, 如何有效率的开发 Junit 单元测试代码, 对敏捷开发而言, 绝对不是一件容易的事◦

后续将陆续探讨这方面的议题◦

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-04-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档