JUnit 4 Demo

1.Maven Dependency

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>org.fool.junit4</groupId>
	<artifactId>junit4</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>junit4</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

 

2.Project Directory


 

3.src/main/java

Calculator.java

package org.fool.junit4;

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

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

	public int multiply(int a, int b)
	{
		return a * b;
	}

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

		return a / b;
	}
}

 

largest.java

package org.fool.junit4;

public class Largest
{
	public int getLargest(int[] array) throws Exception
	{
		if (null == array || 0 == array.length)
		{
			throw new Exception("数组不能为空!");
		}

		int result = array[0];

		for (int i = 0; i < array.length; i++)
		{
			if (result < array[i])
			{
				result = array[i];
			}
		}

		return result;
	}
}

 

4.src/test/java

CalculatorTest.java

package org.fool.junit4;

import static org.junit.Assert.assertEquals;

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

public class CalculatorTest
{
	private Calculator cal;

	@BeforeClass
	public static void setUpBeforeClass() throws Exception
	{
		System.out.println("globalInit invoked!");
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception
	{
		System.out.println("globalDestroy invoked!");
	}

	@Before
	public void setUp() throws Exception
	{
		cal = new Calculator();
		System.out.println("before");
	}

	@After
	public void tearDown() throws Exception
	{
		System.out.println("destroy");
	}

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

		assertEquals(8, result);
	}

	@Test
	public void testSubtract()
	{
		int result = cal.subtract(1, 6);

		assertEquals(-5, result);
	}

	@Test
	public void testMultiply()
	{
		int result = cal.multiply(5, 9);

		assertEquals(45, result);
	}

	@Test(expected = Exception.class)
	public void testDivide() throws Exception
	{
		cal.divide(1, 0);
	}

}

 

LargestTest.java

package org.fool.junit4;

import static org.junit.Assert.fail;

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

public class LargestTest
{
	private Largest largest;

	@Before
	public void setUp() throws Exception
	{
		largest = new Largest();
	}

	@After
	public void tearDown() throws Exception
	{
	}

	@Test
	public void testGetLargest()
	{
		int[] array = { 1, 9, -10, -20, 23, 34 };

		int result = 0;

		try
		{
			result = largest.getLargest(array);
		}
		catch (Exception ex)
		{
			fail("测试失败");
		}

		Assert.assertEquals(34, result);
	}

	@Test(expected = Exception.class)
	public void testGetLargest2() throws Exception
	{
		largest.getLargest(null);
	}

	@Test(expected = Exception.class)
	// @Ignore("not ready yet")
	public void testGetLargest3() throws Exception
	{
		largest.getLargest(new int[] {});
	}
}

 

ParametersTest.java

package org.fool.junit4;

import static org.junit.Assert.assertEquals;

import java.util.Arrays;
import java.util.Collection;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

@RunWith(Parameterized.class)
public class ParametersTest
{
	private int expected;

	private int input1;

	private int input2;

	private Calculator cal;

	@SuppressWarnings("rawtypes")
	@Parameters
	public static Collection prepareData()
	{
		Object[][] object = { { 3, 1, 2 }, { -4, -1, -3 }, { 5, 2, 3 },
				{ 4, -4, 8 } };

		return Arrays.asList(object);
	}

	@Before
	public void setUp()
	{
		cal = new Calculator();
	}

	public ParametersTest(int expected, int input1, int input2)
	{
		this.expected = expected;
		this.input1 = input1;
		this.input2 = input2;
	}

	@Test
	public void testAdd()
	{
		assertEquals(this.expected, cal.add(this.input1, this.input2));
	}
}

 

TestAll.java

package org.fool.junit4;

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

@RunWith(Suite.class)
@Suite.SuiteClasses({ CalculatorTest.class, LargestTest.class,
		ParametersTest.class })
public class TestAll
{

}

 

TestAll2.java

package org.fool.junit4;

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

@RunWith(Suite.class)
@Suite.SuiteClasses(TestAll.class)
public class TestAll2
{

}

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个用于构建Java应用程序的开发框架,可以帮助开发人员快速、高效地搭建Spring应用。Junit是一个用于编写单元测试的开源框架。结合Spring Boot和Junit,我们可以编写并执行各种测试用例来验证应用程序的不同部分的功能是否正常。 编写一个Spring Boot Junitdemo非常简单。首先,我们需要在项目的pom.xml文件中添加JUnit的依赖项。这可以通过在<dependencies>标签内添加以下代码来完成: ``` <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> ``` 接下来,我们可以创建一个简单的Spring Boot应用程序,并在应用程序中添加一些需要测试的类和方法。例如,我们可以创建一个名为Calculator的类,并在其中添加一个add方法来计算两个数字的和。 在编写测试用例之前,我们需要创建一个名为CalculatorTest的类,并在其中添加注解@RunWith(SpringRunner.class)和@SpringBootTest来告诉Junit我们要运行一个Spring Boot测试。然后,我们可以使用@Test注解来标记需要执行的测试用例方法,并在方法内部编写实际的测试代码。 以下是一个简单的示例: ```java @RunWith(SpringRunner.class) @SpringBootTest public class CalculatorTest { @Autowired private Calculator calculator; @Test public void testAdd() { int result = calculator.add(2, 3); assertEquals(5, result); } } ``` 在这个示例中,我们使用@Autowired注解将Calculator类注入到测试类中,并使用assertEquals方法来断言计算结果是否正确。 最后,我们可以使用Maven或Gradle等构建工具运行测试用例。这些工具可以自动将测试用例编译、构建和执行,并提供详细的测试报告。 综上所述,通过Spring Boot和JUnit的结合,我们可以轻松地编写和执行各种测试用例,以验证应用程序的不同组件和功能是否正常工作。这有助于提高应用程序的质量和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值