Junit学习笔记之一:junit的安装和测试原则

本文介绍了JUnit的安装方法,强调不推荐直接使用Eclipse内置的JUnit包,而应导入独立的jar。接着讲解了在Eclipse中创建sourcefolder为test,并在与被测类相同包下编写测试类的原则。对比了JUnit3和JUnit4的区别,如JUnit3需继承TestCase,测试方法以test开头,JUnit4则使用注解@Test、@Before和@After。最后,提到了JUnit中的断言操作,主要通过Assert类或TestCase的assert方法进行。
摘要由CSDN通过智能技术生成

1、导入junit的jar,不建议直接使用eclipse中所提供的包

2、在src目录下编写服务代码

3、创建测试类

   基本原则:1、在eclipse中创建一个sourcefolder命名为test

   2、创建一个测试类所在的包,包的名称和要测试的类一致

4、Junit3和Junit4两者之间的区别是非常明显的

在Junit3中,如果某个类需要是测试类,必须将其继承于TestCase,如果某个方法需要是测试方法,必须让这个方法通过testXX开头,在junit3中,如果希望指定某个测试方法运行之前运行某个初始化方法,这个方法的名称必须是setUp,如果希望在某个测试方法运行之后运行某个释放资源的方法,这个方法的名称必须是tearDown

  在Junit4中,一个POJO类就是一个测试类,测试方法通过@Test来标识,初始化方法通过@Before,释放资源的方法通过@After来标注。但是为了让junit4中的测试类在Junit3中也可以使用,习惯于把初始化方法命名为setUp,释放资源的方法命名为tearDown,测试方法也同样以test开头

5、如何使用断言

   在junit4中提供了一个Assert的类,这个类中有大量的方法进行断言的处理,在junit3中由于继承了TestCase,这个TestCase中提供了大量的assert的方法

//把Assert中的static方法全部导入到类中
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;

import org.junit.Before;
import org.junit.Test;

public class TestCalcuate {
	Calcuate cal;
	
	//执行任意一个方法之前都会仔细setUp方法
	@Before
	public void setUp() {
		cal = new Calcuate();
	}
	
	//加了@Test表示该方法是一个单元测试方法
	@Test
	public void testAdd() {
		int rel = cal.add(12,22);
		/*
		 * 以下就是一个简单的断言的编写
		 * 第一个参数是如果出错给出的提示信息
		 * 第二个参数表示方法执行完成之后预期的一个值
		 * 第三个参数表示实际值
		 */
		//Assert.assertEquals("加法有问题", rel, 34);
		/**
		 * 当进行了静态导入之后,import static org.junit.Assert.*;
		 * Assert中的所有静态方法就不用在添加类名来调用
		 * 这样可以有效的兼容junit3
		 */
		assertEquals("加法有问题", rel, 34);
	}
	
	@Test
	public void testMinus() {
		int rel = cal.minus(20, 10);
		assertEquals("减法有问题",rel,10);
	}
	
	@Test
	public void testDivide() {
		int rel = cal.divide(20, 10);
		assertEquals(rel,2);
	}
	
	//表示这个测试类应该抛出ArithmeticException,如果不抛出就报错
	@Test(expected=ArithmeticException.class)
	public void testDivideException() {
		int rel = cal.divide(20,0);
	}
	
	//表示这个方法应该在300毫秒内执行结束才算是正确
	@Test(timeout=300)
	public void testTime() {
		try {
			Thread.sleep(200);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		System.out.println("abc");
	}
	
	@Test
	public void testMul() {
		int rel = cal.mul(10, 5);
		assertEquals(rel, 50);
	}
	
	@Test
	public void testHamcrest() {
		//首先需要静态导入import static org.hamcrest.Matchers.*;
		//判断50是否大于20并且小于60,具体的hamcrest的比较参数可以在文档中查询
		assertThat(50,allOf(greaterThan(20),lessThan(60)));
		//判断某个字符串是否以另一个字符串结尾
		assertThat("abc.txt",endsWith("txt"));
	}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值