JUnit4
比之前的版本可爱多了。
编写Testcase
使用JUnit4
编写testcase
不再有继承Testcase
类的负担了。只要在测试方法加annotation
@org.junit.Test
就行了。
@org.junit.Test
public
void
test1(){
// ur test code here
}
一个类可以有多个这种加了@Test annotation
标注的测试方法。它们会在跑testcase
的时候无序无依赖的跑。
如果一个类中的Test
方法需要做一些初始化和清理工作,就需要用到@BeforeClass,
@AfterClass, @Before
和@After
这几个标注了。
@BeforeClass
public
void
overallInitial(){
// This method will run ONCE and ONLY ONCE before all
test methods in this class. Some initial works should be done here for all test
methods in this class.
}
@Before
public
void
initalTestCase(){
// This method run every time before for a test method.
Test method level initial work should be done here.
}
@After
public
void
clearupTestCase(){
// This method run every time after for a test method.
Test method level clearup work should be done here.
}
@AfterClass
public
void
overallClearup(){
// This method will run ONCE and ONLY ONCE after all test
methods in this class. Some clearup works should be done here for all test
methods in this class.
}
编写testcase
基本就这么简单。一切都用标注搞定就行了。
还有一些有用的标注:
忽略某个testcase
@Ignore("This case is not supported yet")
1s
内如果不能跑完就算失败
@Test(timeout=1000)
如果抛出IOException
则算测试成功
@Test(expected=IOException.class)
组织和运行Testcase
编写完Testcase
,一般需要将Testcase
组织成Testsuite
,这样可以一次跑多个Testcase
类。JUnit4
中组织Testcase
的方式有多种。
通过Annotation
最简单的还是通过annotation
。下面的类就是通过Annotation
来将多个Testcase
组织成一个Suite
package
junit.testsuite;
import
junit.testcase.JUnitTestCase;
import
junit.testcase.TestCase2;
import
org.junit.runner.RunWith;
import
org.junit.runners.Suite;
@RunWith(Suite.
class
)
@Suite.SuiteClasses({ JUnitTestCase.
class
, TestCase2.
class
})
public
class
AllTestsUsingAnnotation {
}
上面的类不需要代码,就俩标注就行了。一个@org.junit.runner.RunWith
,一个
@org.junit.runners.Suite
。@RunWith
表示这个类将以哪种形式来跑。后面的类型必须是Runner
接口的实现。在这里指定 为Suite
。@Suite.SuiteClasses
则可以包含多个test unit
类。
@Suite.SuiteClasses
中的类也可以指定另一个TestSuite
,这样就可以有多个包含层次了。不过其中的test unit
不能间接或者直接的包含当前类,否则就死循环了嘛。
这个类在Eclipse
里面是可以直接Run As JUnit Test
的。
通过手工创建TestSuite
如果不使用标注,可以手动创建TestSuite
。
package
junit.testsuite;
import
junit.framework.JUnit4TestAdapter;
import
junit.framework.Test;
import
junit.framework.TestSuite;
import
junit.testcase.TestCase3;
public
class
AllTestsUsingSuiteMethod {
public
static
Test suite() {
TestSuite suite =
new
TestSuite("Root Test");
// $JUnit-BEGIN$
suite.addTest(
new
JUnit4TestAdapter(TestCase3.
class
));
suite.addTest(
new
JUnit4TestAdapter(AllTestsUsingAnnotation.
class
));
// $JUnit-END$
return
suite;
}
}
上面的类创建了一个TestSuite
,同时向TestSuite
里增加了两个test unit
。其中第二个其实就是上面创建的一个TestSuite
。
如果在一个TestSuite
里面有重复的testcase
,那么将只有一个会被运行,重复的将被忽略。
这个类在Eclipse
里面是可以直接Run As JUnit Test
的。
运行Testcase
除了能够在Eclipse
里面运行之外,还可以在普通的程序甚至命令行中跑。
下面的code
就是通过应用程序跑TestCase
的。根据结果可以生成需要的表格等有组织的报表。
package
junit.testsuite;
import
junit.testcase.JUnitTestCase;
import
junit.testcase.TestCase2;
import
org.junit.runner.JUnitCore;
import
org.junit.runner.Result;
import
org.junit.runner.notification.Failure;
public
class
RunTestInMainApp {
public
static
void
main(String[] args) {
Result result =
JUnitCore.runClasses(JUnitTestCase.
class
,
TestCase2.
class
);
for
(Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
}
}
在命令行下也可以通过类似的方法跑。
java org.junit.runner.JUnitCore
junit.testcase.JUnitTestCase, junit.testcase.TestCase2
分享到:
相关推荐
这个“JUnit Tutorial.zip”压缩包包含了一份详细的JUnit实战教程PDF,旨在帮助初学者和经验丰富的开发者更好地理解和运用JUnit进行软件质量保证。 一、JUnit简介 JUnit是一个开源项目,最初由Ernst Meyer和Kent ...
- **注解**:从 JUnit 4 开始支持注解,如 `@Test`、`@Before`、`@After` 等,简化了测试代码的编写。 #### 四、中级示例 随着项目的复杂度增加,JUnit 提供了更多高级功能来满足不同的测试需求。 **示例 2**:...
提供的压缩包文件名为 "log4j_tutorial.pdf" 和 "javLog4J.pdf",很可能分别包含了Log4j的基础教程和关于Java中的Log4j使用细节。这些PDF文档可能涵盖了Log4j的配置、用法示例、最佳实践等内容,以及如何在Java项目...
本指南将引导您完成创建Spring应用程序,然后使用JUnit对其进行测试的过程。 你会建立什么 您将构建一个简单的Spring应用程序,并使用JUnit对其进行测试。 您可能已经知道如何编写和运行应用程序中各个类的单元测试...
4. **版本控制系统**:在fullstack-tutorial中,可能包含Git的使用教程。Git是目前最流行的分布式版本控制系统,它帮助开发者追踪代码变更,协同开发,并实现代码的版本管理。 5. **部署与运维**:学习如何将开发好...
2. 单元测试:支持JUnit和TestNG等测试框架,编写和运行测试用例,确保代码质量。 七、插件扩展 1. 插件市场:在“Preferences”>“Plugins”中,可以浏览和安装各种插件,增强IDE功能,如Lombok、GitFlow、Code...
Android单元测试(三):JUnit单元测试框架的使用 代码和测试代码在junit子package下面 Android单元测试在蘑菇街支付金融部门的实践 代码和测试代码在groupshare子package下面 Android单元测试(四):Mock以及Mockito...
### JUNG2-Tutorial:Java Universal Network/Graph框架详解 #### 一、引言与概述 JUNG2(Java Universal Network/Graph Framework)是JUNG(Java Universal Network/Graph)框架的一个重大修订版本,旨在为Java...
4. **集合框架**:Java集合框架包括List、Set、Map等接口及其实现类,如ArrayList、LinkedList、HashSet、HashMap等,这是处理数据的重要工具。 5. **输入/输出流**:Java的I/O流模型允许程序读取和写入数据,包括...
4. **Java Persistence API (JPA)** - J2EE 1.4 中的 JPA 是一种用于管理和持久化 Java 对象到关系数据库的标准。 - ORM(对象关系映射)的概念和工作原理。 - CRUD(创建、读取、更新和删除)操作的实现。 5. *...
4. **编码辅助**:介绍智能代码补全、代码分析、重构工具,如自动导入、快速修复、提取方法等,以及如何利用意图操作(Intentions)改进代码。 5. **调试与测试**:教授如何设置断点、单步执行、查看变量值、进行...
1. JUnit 5开发人员指南 2. GitHub存储库 3.重要的Java开发人员指南 ...4. JUnit 4与JUnit 5的备忘单 5.下载PDF版的《 JUnit 5用户指南》。 https://github.com/RameshMF/ebooks/blob/master/junit5-user-guide.pdf
同时,单元测试和集成测试也是Java EE开发过程中的重要环节,书中可能会介绍JUnit和Arquillian等测试工具的使用。 为了帮助读者更好地理解和实践,书中通常会包含丰富的示例代码和练习,鼓励读者动手实践,加深理解...
4. `SimpleObserverBug2`:可能涉及到观察者模式(Observer Pattern)的应用,这是设计模式中的一种,用于在对象之间建立一种一对多的依赖关系。在Swarm环境中,这种模式可能用于事件驱动的编程或状态管理。 5. `...
4. **Intent**:Intent是Android中连接不同组件的桥梁,可以用来启动Activity、服务或者广播接收器,也可以传递数据。 5. **UI组件**:Android提供了丰富的UI组件,如按钮、文本框、图像视图等,用于构建用户界面。...
4. **Eclipse_4_Tutorial.pdf**: 这个教程可能提供了一步一步的指南,教授如何从头开始创建一个Eclipse4插件。它可能包含关于创建基本插件结构、编写启动代码、注册扩展点和贡献元数据等方面的内容。 5. **01 ...
JUnit- https://courses.in28minutes.com/p/junit-tutorial-for-beginners Mockito- https: //courses.in28minutes.com/p/mockito-for-beginner-in-5-steps 安装工具 安装视频: https : //www.youtube.co
4 Eclipse Tutorial One-Page Startup Instruction VideoNotes 5 Teaching/Learning Java Effectively with Eclipse 6 JBuilder X Tutorial JBuilder 2005 Tutorial One Page Startup Instruction ...