`
pan_java
  • 浏览: 286167 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Junit 4.0 学习笔记

    博客分类:
  • java
阅读更多
junit 4x 相比 junit3.8大量使用了 annotation .

主程序
public class Compalbe {
	
  public int add(int a,int b){
	  return a+b;
  }
  
  public int div(int a,int b) throws Exception{
	   return a/b;
	    
	}

}


测试程序
测试方法在junit4.x中必顺是public void ,但测试方法不做要求,不像3.8一样以test开头.类也不用继承TestCase
1.简单测试
public class TestCompalbe {
	
	@Test
	public void testAdd(){
		Compalbe com = new Compalbe();
		int result = com.add(2, 2);
		Assert.assertEquals(3, result);
	}
	
	@Test
	public void testDiv() throws Exception{
		Compalbe com = new Compalbe();
		int result = com.div(2, 2);
		Assert.assertEquals(1,result);
	}

}

2.指定异常
public class TestCompalbe {
	//指定异常
         @Test(expected=Exception.class)
	public void testDiv() throws Exception{
		Compalbe com = new Compalbe();
		//除数为0异常
                  int result = com.div(2, 0);
		Assert.assertEquals(1,result);
	}

}

3.指定程序运行的延时
@Test(timeout=100)//如果超去这个时间则不通过
	public void testDiv() throws Exception{
		Compalbe com = new Compalbe();
		int result = com.div(2, 2);
		Thread.sleep(20);
		Assert.assertEquals(1,result);
	}

4.@Before,@After
public class TestCompalbe {
	Compalbe com = null;

         //@Before作用初始化测试方法相关资源
	@Before
	public void init() {
		System.out.println("init");
		com = new Compalbe();
	}

         //@After作用销毁测试方法相关资源
	@After
	public void destory() {
		System.out.println("destorys");
		com = null;
	}

	@Test
	public void testAdd() {
		int result = com.add(2, 2);
		Assert.assertEquals(4, result);
	}

	@Test
	public void testDiv() throws Exception {
		int result = com.div(2, 2);
		Assert.assertEquals(1, result);
	}

}

注init,destory分别会执行次,有多少个测试方法就会分别执行多少
5 @BeforeClass,@AfterClass
public class TestCompalbe {
	static Compalbe com = null;

         //@BeforeClass作用初始化测试方法相关资源(如:jdbc Connection)
	@BeforeClass
	public static void  init() {
		System.out.println("init");
		com = new Compalbe();
	}

         //@AfterClass作用销毁测试方法相关资源
	@AfterClass
	public static void  destory() {
		System.out.println("destorys");
		com = null;
	}

	@Test
	public void testAdd() {
		int result = com.add(2, 2);
		Assert.assertEquals(4, result);
	}

	@Test
	public void testDiv() throws Exception {
		int result = com.div(2, 2);
		Assert.assertEquals(1, result);
	}

}
注init,destory分别都只会执行次,有多少个测试方法都只会分别执行
6 @Ignore
        
@Test
	//测试程序将忽略些方法
         @Ignore
	public void testDiv() throws Exception {
		int result = com.div(2, 2);
		Assert.assertEquals(1, result);
	}

7@Suite (批量测试)
新增主程序
public class Compalbe2 {

	public int sub(int a,int b){
		return a-b;
	}
	
	public int mul(int a,int b){
		return a*b;
	}

}

新增测试程序
public class TestCompable2 {

	Compalbe2 com = null;

	@Before
	public void init() {
		com = new Compalbe2();
	}

	@After
	public void destory() {

	}

	@Test
	public void testMul() {
		int result = com.mul(3, 4);
		Assert.assertEquals(12, result);
	}

	@Test
	public void testSub() {
		int result = com.sub(3, 4);
		Assert.assertEquals(-1, result);
	}

}

使用批量测试
@RunWith(Suite.class)
@Suite.SuiteClasses({TestCompalbe.class,TestCompable2.class})
public class SuitTest {

}

junit 将同时执行TestCompalbe,TestCompable2中的全部测试方法
同时SuitTest 还可以包括在其他的批量测试程序中
如@Suite.SuiteClasses({SuitTest1.class,SuitTest2.class})这样就可以方便去测试包,和JAR的测试程序.
@RunWith(Suite.class) 表示利用那种运行器,同时还可以自定义运行器超类(org.junit.runner.Runner)

8 私有方法测试
可以使用类的反射机制去加载Class,再获取方法.再去测试这个方法
9 组合查询
  
  测试程序
  
//确认运行器
@RunWith(Parameterized.class)
public class ParameterizedTest {

	private int result;
	private int input1;
	private int input2;
	
	private Compalbe com = null;
	@Before
	public void init(){
		com = new Compalbe();
	}
	
	//准备参数
          //方法为 public static ,返回类型为Collection
         @Parameters
	public static Collection<Object[]> data() {
		
		//参数列表为二维数组,参数的位置为构造函数对应
                     //如{3,2,1},{3是结果对应result参数,2对应input1,1对应input2
                  Object[][] objarr = new Object[][]{{3,2,1},{4,2,2},{-1,-1,0}};
		
		return Arrays.asList(objarr);
	}
	
	
	public ParameterizedTest(int result,int input1,int input2){
		this.result  = result;
		this.input1 = input1;
		this.input2 =  input2;
	}
	
         //测试方法
	@Test
	public void testAdd(){
		Assert.assertEquals(result, com.add(input1, input2));
	}
	

}

以上程序将测试{3,2,1},{4,2,2},{-1,-1,0}三种情况
附件包括测试源代码
分享到:
评论

相关推荐

    Junit4.0完整工具

    在压缩包中包含的 `Junit4.0.jar` 文件是JUnit 4.0的库文件,它是开发环境中运行JUnit测试所必需的。将这个库添加到你的项目构建路径中,就可以开始编写和运行JUnit测试了。 使用JUnit进行单元测试通常涉及以下步骤...

    junit4.0 jar包

    总的来说,`junit4.0.jar`是Java开发中不可或缺的工具,它提供了一套强大且易用的测试框架,帮助开发者确保代码的质量和稳定性。无论是初学者还是经验丰富的开发者,都应该熟练掌握JUnit 4.0的使用,以便在项目开发...

    刚发布的最新版 Junit 4.0

    Junit 4.0 是Java开发领域中一个重要的里程碑,它是JUnit系列的第四个主要版本,专注于提升测试的灵活性和可扩展性。JUnit是Java语言中最广泛使用的单元测试框架,它使得开发者能够编写易于理解、运行快速且可靠的...

    junit4.0.zip

    这个压缩包"junit4.0.zip"包含了JUnit 4.0的所有组件和必要的库文件,使得开发者能够高效地编写和运行他们的测试用例,确保代码的质量和可靠性。 在Java开发中,单元测试是一种重要的实践,它允许程序员对代码的...

    JUnit4.0 JUnit4 HelloWorld

    JUnit4.0是Java开发中广泛使用的单元测试框架,它为编写可重复执行的、可靠的测试提供了强大支持。本主题将深入探讨JUnit4的新特性,尤其是如何“放弃旧的断言,使用hamcrest断言”,以及如何有效地运行多个测试。 ...

    junit-4.0.jar

    junit-4.0.jar

    hibernate4.2.4和junit4.0.rar

    《深入理解Hibernate 4.2.4与JUnit 4.0》 在Java开发领域,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作,而JUnit则是进行单元测试的重要工具。本教程将围绕Hibernate 4.2.4版本与...

    hibernate-junit4.0-postgresql-8.4-jdbc等jar包

    在给定的标题和描述中,我们关注的是如何使用Hibernate来连接PostgreSQL数据库,并且提到了一些关键的库文件,如hibernate-junit4.0、postgresql-8.4-jdbc等。 首先,让我们深入了解每个组件: 1. **Hibernate**:...

    Spring 4.0学习笔记

    ### Spring 4.0 学习笔记 #### 1. Spring 概述 ##### 1.1 Spring 是什么 Spring 是一个开源框架,其主要目标是简化企业级应用的开发。通过Spring,开发者可以利用简单的JavaBean来实现原本只有EJB才能完成的功能...

    Selenium需要的jar包(selenium-client-driver;selenium-server;junit4.0).rar.rar

    JUnit 4.0引入了许多改进,比如注解、参数化测试和测试套件等,使得测试代码更加简洁和易读。在Selenium项目中,你可以为每个功能或页面创建一个JUnit测试类,每个测试方法对应一个具体的测试场景。 在使用这些jar...

    Junit学习笔记~

    Junit学习笔记,希望有用~~~~~~~~~~~~~~~~~~~~~~

    JUnit学习笔记

    这篇博客“JUnit学习笔记”可能是博主GreatJone在深入学习JUnit过程中所做的记录和总结,包括了JUnit的基本概念、核心组件、使用方法以及一些高级特性。 首先,JUnit的核心理念是基于断言的测试,即编写特定的测试...

    JUnit4学习笔记

    法在每个测试方法执行之后都要执行一次,相当于 JUnit3 中的 tearDown 方法,用于清理测试环境。@Test:这是 JUnit4 中的核心元数据,用于标记测试方法。当 JUnit4 运行测试时,会查找所有带有 @Test 注解的方法,并...

    junit个人学习笔记

    现在的版本都4.3.1,3.8.1的感觉好象不好找,虽然www.junit.org能够找到,但对我们这种英语不好的来说,还是不好找,再说了,现在好多的教程都是以3.8.1来写的,所以在这里把我找到的3.8.1传上来供大家以后下载 博文链接:...

    Junit4学习笔记—入门篇.pdf

    ### JUnit4学习笔记——入门篇 #### 一、配置MyEclipse在项目中引入JUnit4.jar包 在使用JUnit4进行单元测试之前,首先需要确保开发环境已正确配置JUnit库。对于使用MyEclipse IDE的开发者来说,可以通过以下步骤...

    Year_junit4_poetqqj_

    标题中的"Year_junit4_poetqqj_"可能是指一个关于使用JUnit 4.0进行年度测试的项目或教程,而"poetqqj"可能是个人名称、项目代号或者是某种编码规则的一部分,但在这里没有具体含义。描述中的“测试模块使用Junit ...

    JUnit4.zip下载

    4. `junit-4.11-sources.jar`, `junit-4.7-src.jar`:这两个文件分别提供了 JUnit 4.11 和 4.7 版本的源代码,对于学习 JUnit 内部实现或者进行二次开发非常有帮助。 5. `使用说明.txt`:这是一个文本文件,很可能...

    JUnit4_02.zip

    JUnit4视频教程及源码,由于文件较大,分割为JUnit4_01.zip,JUnit4_02.zip,JUnit4_03.zip三个压缩包并附文档,下载后解压便可观看视频,导入代码,直接在自己的机器上运行

Global site tag (gtag.js) - Google Analytics