JUnit学习笔记

    JUnit(单元测试)

      JUnit的口号:keep the bar green to keep the code clean

      1.单元测试不是为了证明您是对的,而是为了证明您没有错误。

      2.测试用例(Test Case)是单元测试的一个很重要的方面。

      3.Test Case 之间一定要保持完全的独立性,不允许出现任何的依赖关系。

      4.DRY  (Don't   repeat  yourself)

     JUnit4

     1.@Ignore 注解可用于修饰测试类与测试方法,当修饰测试类时,表示忽略掉类中的所有测试方法,当修饰测试方法时,表示忽略该测试方法。

     2.参数化测试(@Parameters)  当一个测试类使用参数化运行器运行时,需要在类的声明处加上@RunWith(Parameterized.class)注解,表示该类将不使用JUnit内建的运行器运行,而使用参数化运行器运行,同时,在提供参数的方法上要使用@Parameters注解 来修饰,并且在测试类的构造方法中为各个参数赋值。

    3.如果想要同时运行多个测试,需要使用两个注解:@RunWith(Suite.class)以级@Suite.SuiteClasses(),通过这两个注解分别指定使用Suite运行器来运行测试,其中的@SuiteClass中可以继续指定Suite,这样JUnit会再去寻找里面的测试类,一直找到能够执行的TestCase并且执行。

    写测试类时,需要新建一个Source Folder,然后在这里面建与需要测试类所在包相同的包名,还需要加入JUnit的Jar包。

    如下图所示:


   我将要测试类com.junit下的Calculate类:

   

package com.junit;

public class Calculate
{
	public int add(int a, int b)
	{
		return a + b;
	}

	public int delete(int a, int b)
	{
		return a - b;
	}

	public int dvide(int a, int b) throws Exception
	{
		if (b == 0)
		{
			throw new Exception("除数不能为零");
		}
		return a / b;
	}

}

  相当的在test下的com.junit包中新建TestCalculate类:

package com.junit;

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

public class TestCalculate
{
	private Calculate cal;

	// 测试之前,只执行一次
	@BeforeClass
	public static void globalInit()
	{
		System.out.println("GlobalInit");
	}

	// 所有测试类运行之前
	@Before
	public void init()
	{
		cal = new Calculate();
		System.out.println("init");
	}

	@Test
	public void testAdd()
	{
		int result = cal.add(3, 3);

		Assert.assertEquals(6, result);
	}

	@Test
	public void testDelete()
	{
		int result = cal.delete(3, 1);

		Assert.assertEquals(2, result);
	}

	@Test(expected = Exception.class)
	public void testDvide() throws Exception
	{
		int result = cal.dvide(6, 0);

		Assert.assertEquals(3, result);
	}

	// 所有测试类运行之后
	@After
	public void destory()
	{
		System.out.println("destory");
	}

}

运行的结果:

再介绍下Suite的使用:

 

package com.junit;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses(
{ TestCalculate.class })
public class SuiteTest
{

}


 

  

   

 

   

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值