Tutorial 1
This tutorial introduces the basic annotation supports that implemented in Junit 4.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
import
org.junit.*
;
import
static
org.junit
.Assert
.*;
import
java.util.*
;
/**
* @author mkyong
*
*/
public
class
JunitTest1 {
private
Collection
collection;
@BeforeClass
public
static
void
oneTimeSetUp(
)
{
// one-time initialization code
System
.out
.println
(
"@BeforeClass - oneTimeSetUp"
)
;
}
@AfterClass
public
static
void
oneTimeTearDown(
)
{
// one-time cleanup code
System
.out
.println
(
"@AfterClass - oneTimeTearDown"
)
;
}
@Before
public
void
setUp(
)
{
collection =
new
ArrayList
(
)
;
System
.out
.println
(
"@Before - setUp"
)
;
}
@After
public
void
tearDown(
)
{
collection.clear
(
)
;
System
.out
.println
(
"@After - tearDown"
)
;
}
@Test
public
void
testEmptyCollection(
)
{
assertTrue(
collection.isEmpty
(
)
)
;
System
.out
.println
(
"@Test - testEmptyCollection"
)
;
}
@Test
public
void
testOneItemCollection(
)
{
collection.add
(
"itemA"
)
;
assertEquals(
1
, collection.size
(
)
)
;
System
.out
.println
(
"@Test - testOneItemCollection"
)
;
}
}
|
Result
@BeforeClass – oneTimeSetUp
@Before – setUp
@Test – testEmptyCollection
@After – tearDown
@Before – setUp
@Test – testOneItemCollection
@After – tearDown
@AfterClass – oneTimeTearDown
In JUnit 4, we have to declare “@BeforeClass” and “@AfterClass” method as static method.
Tutorial 2
The “exception testing” means what exception throw from the unit test.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import
org.junit.*
;
/**
* JUnit Expected Exception Test
* @author mkyong
*
*/
public
class
JunitTest2 {
@Test(
expected =
ArithmeticException
.class
)
public
void
divisionWithException(
)
{
int
i =
1
/
0
;
}
}
|
Result
Unit test marked success
Tutorial 3
The “Ignored” means whether it should ignore the unit test.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import
org.junit.*
;
/**
* JUnit Ignore Test
* @author mkyong
*
*/
public
class
JunitTest3 {
@Ignore(
"Not Ready to Run"
)
@Test
public
void
divisionWithException(
)
{
System
.out
.println
(
"Method is not ready yet"
)
;
}
}
|
Result
unit test ignored
Tutorial 4
The “Time Test” means if an unit test takes longer than the
specified number of milliseconds to run, the test will terminated and
mark as fails.
import org.junit.*;
/**
* JUnit TimeOut Test
* @author mkyong
*
*/
public class JunitTest4 {
@Test(timeout = 1000)
public void infinity() {
while (true);
}
}
Result
java.lang.Exception: test timed out after 1000 milliseconds
Tutorial 5
The “Suite Test” means bundle a few unit test and run it together.
The “@RunWith” and “@Suite” are use to run the suite test. The below
class means both unit test “JunitTest1” and “JunitTest2” run together
after JunitTest5 executed. All the declaration is define inside the
class.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import
org.junit.runner.RunWith
;
import
org.junit.runners.Suite
;
/**
* JUnit Suite Test
* @author mkyong
*
*/
@RunWith(
Suite.class
)
@Suite.SuiteClasses
(
{
JunitTest1.class
,
JunitTest2.class
}
)
public
class
JunitTest5 {
}
|
Result
@BeforeClass – oneTimeSetUp
@Before – setUp
@Test – testEmptyCollection
@After – tearDown
@Before – setUp
@Test – testOneItemCollection
@After – tearDown
@AfterClass – oneTimeTearDown
P.S Result is from JunitTest1 and JunitTest2 unit test
Tutorial6
The “Parameterized Test” means vary parameter value for unit test.
The “@RunWith” and “@Parameter” is use to provide parameter value for
unit test, @Parameters have to return List[], and the parameter will
pass into class constructor as argument.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import
java.util.Arrays
;
import
java.util.Collection
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runners.Parameterized
;
import
org.junit.runners.Parameterized.Parameters
;
/**
* JUnit Parameterized Test
* @author mkyong
*
*/
@RunWith(
value =
Parameterized.class
)
public
class
JunitTest6 {
private
int
number;
public
JunitTest6(
int
number)
{
this
.number
=
number;
}
@Parameters
public
static
Collection<
Object[
]
>
data(
)
{
Object
[
]
[
]
data =
new
Object
[
]
[
]
{
{
1
}
, {
2
}
, {
3
}
, {
4
}
}
;
return
Arrays
.asList
(
data)
;
}
@Test
public
void
pushTest(
)
{
System
.out
.println
(
"Parameterized Number is : "
+
number)
;
}
}
|
Result
Parameterized Number is : 1
Parameterized Number is : 2
Parameterized Number is : 3
Parameterized Number is : 4
It has many limitations here; we have to follow the “JUnit” way to
declare the parameter, and the parameter has to pass into constructor
in order to initialize the class member as parameter value for testing.
The return type of parameter class is “List []”, data has been limited
to String or a primitive value for testing.
分享到:
相关推荐
在Java编程领域,JUnit是一个非常重要...总的来说,通过这个Junit实例,我们可以学习到如何使用JUnit进行单元测试,理解测试驱动开发(TDD)的重要性,以及如何编写和组织测试用例。这对于提高代码质量和维护性至关重要。
《Junit实例图解:快速掌握单元测试框架》 Junit是Java开发中广泛使用的单元测试框架,它为开发者提供了一种便捷的方式来编写和执行针对单个代码单元的测试。本文将通过实例图解的方式,逐步介绍如何在Eclipse环境...
junit是java进行单元测试最成熟的一个框架,这个junittest工程里以实例的方式,介绍了怎样编写测试方法。包含三个测试方法,Math函数的测试,堆栈Stack的测试,用户User类的测试。导入后如果没有引入junit库,记得在...
在这个“junit实例demo”中,我们将会深入理解JUnit的工作原理及其核心特性。 1. **JUnit简介** JUnit是开源的、基于Java的测试框架,它遵循XUnit测试框架的设计模式。它简化了对Java代码进行单元测试的过程,通过...
【标题】:“junit_eclipse实例”是一个关于在Eclipse集成开发环境中运用JUnit进行单元测试的实战案例。这个实例小巧易用,无需额外配置其他库,对于初学者来说,是快速掌握JUnit单元测试的绝佳起点。 【描述】:...
在本实例中,JUnit将用于测试业务逻辑和数据访问层的正确性,确保每个函数按预期工作。 在`first_maven_project`中,开发者可能已经创建了一个简单的Java Web应用,其中包括以下组成部分: 1. **Model** - 代表...
在本文中,我们将深入探讨JUnit4的一些核心概念、特性以及如何通过实例代码进行使用。 首先,JUnit4引入了注解(Annotations)的概念,这是对传统基于接口的测试模式的重大改进。例如,`@Test`注解标记测试方法,`@...
"SpringBoot整合Junit实例过程解析" 本文主要介绍了SpringBoot整合Junit实例过程解析,通过示例代码对大家的学习或者工作具有一定的参考学习价值。 一、SpringBoot为什么要整合Junit? SpringBoot整合了Junit后,...
初次写testsuite会遇到“NO runnable methods”,添加@Test也没有解决问题,看了多个文档实例,终于解决了这个问题,愿意跟大家一起分享,添加了资源分2分,迫于我去下载资源跟我要分啊。java源代码。
JUnit是Java编程语言中最常用的单元测试框架之一,它允许开发者编写可重复执行的测试用例,以验证代码的正确性。JUnit提供了注解(Annotations)如@Test、@Before和@After等,使得编写测试变得简单且直观。下面是...
### JUnit 完整教程:基础知识与实例详解 #### 一、JUnit 概述与重要性 JUnit 是一款广泛应用于 Java 开发环境下的单元测试框架。它的设计初衷是为了简化单元测试过程,帮助开发者更容易地编写出高质量的代码。在...
JUnit 实例中,Computer 类是一个简单的计算器类,具有 add、minus、multiply 和 divide 四个方法。测试类 TestComputer 继承 TestCase 类,编写测试方法 testAdd、testMinus、testMultiply 和 testDivide,使用 ...
#### 三、JUnit实例分析 接下来,我们将通过一个简单的示例来具体分析 JUnit 如何应用于 Android 单元测试。 **示例代码**: ```java public class SampleCalculator { public int add(int augend, int addend) ...
在这个"ant+junit程序小实例"中,我们可以预期包含以下内容: 1. `build.xml` 文件:这是Ant的构建文件,其中会定义如何编译项目、运行JUnit测试并处理结果。它可能包含了`<project>`、`<target>`、`<property>`、`...
单元测试利器 JUnit 4 完整实例图解 做测试的必看的文档 希望对您有帮助
这个"Junit4的小实例程序"包含了一些基础的JUnit4测试示例,帮助初学者理解和掌握如何在实际项目中应用JUnit进行测试。 首先,我们需要了解JUnit4的基本结构。一个JUnit4测试类通常会继承`org.junit.Test`注解的类...
在提供的压缩包“JUNIT测试实例”中,可能包含了详细的文档和源码示例,你可以参考这些材料进一步学习如何在Eclipse中编写和运行Junit测试,理解测试用例的编写方法,以及如何通过测试驱动开发(TDD)提升代码质量。...
【Junit单元测试完整案例】深入解析 在软件开发中,单元测试是验证代码功能是否正确、独立单元是否按预期工作的关键步骤。Junit作为Java领域最常用的单元测试框架,为开发者提供了简单易用的API来进行测试。本案例...
上下文时间软件测试中Junit单元测试实例在一种传统的结构化编程语言中,比如C,要进行测试的单元一般是函数或子过程。在象C++这样的面向对象的语言中,要进行测试的基本单元是类。对Ada语言来说,开发人员可以选择是...