单元测试总结

本文总结java和android中单元测试,方便测试自己代码的正确性(主要是算法和一些逻辑的正确性),减少bug。

1、Java单元测试

1.1第一种方法

待测试类:

package com.yqq.test;

public class TestUnit {
	
	public  int add(int x,int y){
		return x+y;
	}

}

主要是测试add方法的正确性

需要导入包import org.junit.Test;

测试类代码:

package com.yqq.test;

import org.junit.Test;

public class MyTest {
	
	
	@Test
	public void testAdd(){
		TestUnit testUnit=new TestUnit();
		int reslut=testUnit.add(5, 5);
		System.out.println(reslut);
	}

}

测试结果:



出现绿条测试成功!!!测试方法必须是无参数的public void修饰。

1.2测试方法2

@BeforeClass 标注的方法在测试类的所有测试方法执行之前执行,主要用来初始化公用数据。
@AfterClass与 @BeforeClass 进行对应,做一些类级别的清理工作
它们所标注的类必须是public static void的无参方法。它们也可以被继承,并且在子类再注解方法时不会覆盖父类的方法

待测试类代码:

package com.yqq.test;

public class TestUnit {
	private int a;
	private int b;
	public  int add(){
		return a+b;
	}
	/**
	 * @return the a
	 */
	public int getA() {
		return a;
	}
	/**
	 * @param a the a to set
	 */
	public void setA(int a) {
		this.a = a;
	}
	/**
	 * @return the b
	 */
	public int getB() {
		return b;
	}
	/**
	 * @param b the b to set
	 */
	public void setB(int b) {
		this.b = b;
	}
	

}

测试类代码:

package com.yqq.test;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

public class MyTest {
	 private static TestUnit testUnit;
	 //初始化数据
	@BeforeClass
	public static void initArgs(){
		 testUnit=new TestUnit();
		 testUnit.setA(100);
		 testUnit.setB(200);
		
	}
	//清理工作
	@AfterClass
	public static void destroyArgs(){
	
		 testUnit.setA(-3);
		 testUnit.setB(-5);
		 int reslut=testUnit.add();
		 System.out.println(reslut);
		
	}
	@Test
	public void testAdd(){
		
		int reslut=testUnit.add();
		System.out.println(reslut);
	}
	

}

测试结果:



1.3测试方法3

测试类如2所示。

测试代码如下:

package com.yqq.test;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class MyTest {
	 private static TestUnit testUnit;
	 //初始化数据
	@BeforeClass
	public static void initArgs(){
		 testUnit=new TestUnit();
		 testUnit.setA(100);
		 testUnit.setB(200);
		 int reslut=testUnit.add();
		 System.out.println("BeforeClass"+reslut);
		 
		
	}
	
	@Before
	public  void initArgsBefore(){
	
		 testUnit.setA(500);
		 testUnit.setB(100);
		 int reslut=testUnit.add();
		 System.out.println("Before"+reslut);
		 
		
	}
	
	@After
	public  void initArgsAfter(){
	
		 testUnit.setA(600);
		 testUnit.setB(600);
		 int reslut=testUnit.add();
		 System.out.println("After"+reslut);
		
		
	}
	//清理工作
	@AfterClass
	public static void destroyArgs(){
	
		 testUnit.setA(-3);
		 testUnit.setB(-5);
		 int reslut=testUnit.add();
		 System.out.println("AfterClass"+reslut);
		
	}
	@Test
	public void testAdd(){
		
		int reslut=testUnit.add();
		System.out.println("test"+reslut);
	}
	

}

测试结果:



测试类执行顺序: @BeforeClass –> @Before –> @Test –> @After –> @AfterClass
测试方法执行顺序:
@Before –> @Test –> @After
如果有继承则各注解需要先执行父类的方法



2、android单元测试

2.1测试类继承AndroidTestCase

2.2在清单文件配置(测试类和目标包一致)




测试结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值