`

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
{

}

 

 

 

 

 

  • 大小: 11.2 KB
分享到:
评论

相关推荐

    Junit4Demo:Junit4 演示

    junit4 使用总结 @Test @Test(timeout=毫秒),@Test(expected=异常类) @Ignore @RunWith @BeforeCalss @AfterClass @Before @After 测试套件@RunWith(Suite.class) 参数化设置@RunWith(Parameterized.class)

    android studio junit测试 demo

    在这个“android studio junit测试 demo”中,我们将探讨如何在Android Studio中设置和执行JUnit测试,特别是针对Activity的测试。 首先,理解JUnit测试的基本概念是关键。JUnit是一个基于Java的测试框架,允许...

    Junit4测试总结

    在提供的`Junit4Demo`压缩包中,包含了使用JUnit4进行单元测试的示例代码,你可以参考学习,进一步理解JUnit4的使用方式。 总结,JUnit4作为Java单元测试的核心工具,其强大的功能和易用性使得它在软件开发中扮演着...

    junit测试小demo

    在这个名为"junit测试小demo"的压缩包文件中,我们可以预期它包含了一些关于如何使用Junit进行单元测试的示例代码或教程。 首先,让我们来理解一下Junit的基本概念。Junit是一个开源项目,由Eclipse基金会维护,...

    Junit4测试使例

    通过名为`junit4Demo`的压缩包文件,我们可以看到一系列的JUnit4测试示例,包括基础的断言测试、异常测试、超时测试、参数化测试等。通过对这些示例的实践,开发者可以深入理解JUnit4的各种用法,并将其应用于日常的...

    junit-demo.zip

    【Junit-Demo.zip】是一个压缩包,包含了有关测试驱动开发(TDD)的示例代码,特别适合初学者学习和研究。TDD是一种软件开发方法论,它强调在编写实际功能代码之前先编写测试用例。这种方法有助于确保代码的质量,...

    junit实例demo

    在这个“junit实例demo”中,我们将会深入理解JUnit的工作原理及其核心特性。 1. **JUnit简介** JUnit是开源的、基于Java的测试框架,它遵循XUnit测试框架的设计模式。它简化了对Java代码进行单元测试的过程,通过...

    junit测试demo

    在这个“junit测试demo”中,包含了两种类型的测试:纯Java和基于SSH(Spring、Struts和Hibernate)的应用程序的测试。下面将详细介绍这两个方面的内容。 首先,纯Java的JUnit测试主要涉及以下几个知识点: 1. **...

    junit-demo-源码.rar

    《深入解析JUnit测试框架——基于junit-demo-源码》 JUnit是一款广泛应用于Java编程语言中的单元测试框架,它为开发者提供了简洁、高效的测试工具,使得代码的质量得到了显著提升。通过对"junit-demo-源码"的分析,...

    json_jackson_junit_demo.zip

    4. **Junit测试**: 使用JUnit可以编写测试用例来验证这些转换的正确性。例如,你可以创建一个测试类`JsonJacksonTest`,并为每个转换场景编写一个测试方法,使用`assertEquals`断言预期的结果与实际结果相匹配。...

    android JUnit demo

    "android JUnit demo" 是一个基于Android 2.2(API Level 8)的示例项目,它展示了如何在Android环境中使用JUnit进行应用程序的单元测试。在这个demo中,我们可以看到两个主要的组成部分:`Spinner` 和 `SpinnerTest...

    ExtJS+SSH+Junit的Demo

    "ExtJS+SSH+Junit的Demo" 这个标题指的是一个示例项目,它结合了三个关键技术:ExtJS(一个用于构建Web应用的JavaScript库)、SSH(Struts2、Spring和Hibernate的集成框架)以及Junit(Java单元测试框架)。...

    Spring整合JUnit示例Demo

    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import static org.junit.Assert.assertEquals; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {...

    JUnit3.8.1 以及使用JUnit测试的代码demo

    这些方法在JUnit4中被更灵活的`@Before`和`@After`注解取代。 在`JUnit & 简单Junit使用代码`这个文件中,可能包含了一个或多个示例,展示了如何创建测试类、编写测试方法、使用断言以及设置测试环境。例如,可能有...

    springboot整合junit测试用例demo

    本示例将详细介绍如何将JUnit集成到Spring Boot项目中,以便编写和执行测试用例。JUnit是一个广泛使用的Java单元测试框架,它简化了测试过程,使得测试更加便捷高效。 首先,我们需要在Spring Boot项目中引入JUnit...

    Junit测试demo

    本篇将深入探讨"Junit测试demo",旨在帮助您理解如何利用JUnit进行有效的单元测试。 一、JUnit简介 JUnit是XUnit家族的一员,由Ernst von Brühl和Kent Beck在2000年创建。它提供了断言机制、测试注解、测试套件和...

    spring+junit4

    JUnit4则是Java单元测试的重要工具,它简化了编写和执行测试用例的过程。这篇教程将带你了解如何结合Spring与JUnit4进行测试驱动的开发。 首先,Spring框架的核心是IoC(Inversion of Control,控制反转)和DI...

    junit5-demo:JUnit 5的演示

    为了证明对JUnit Jupiter中的assertAll() (即,分组的断言)的支持,而对于JUnit 4中缺少对分组的断言的支持,某些测试有意地失败。其他测试有意地未能证明@SkipOnFailuresInEnclosingClass扩展的功能。

Global site tag (gtag.js) - Google Analytics