关键词:JUNIT
环境:windows2000,Eclipse3.1,JDK1.4
开发过程中进行单元测试,尽可能尽早的将BUG找出,是开发者应该做的。JUNIT为JAVA开发者提供了一个很好的测试机制,以下是一个简单的JUNIT应用实例,也是初学可供参考的JUNIT模板。
java 代码
- package junit.sineat.templet;
- import java.util.Hashtable;
- import junit.framework.Assert;
- import junit.framework.TestCase;
- import junit.framework.TestSuite;
-
- public class JunitB extends TestCase{
-
- public Hashtable hasha=null;
- public Hashtable hashb=null;
-
- public JunitB(String name){
- super(name);
- }
-
- protected void setUp() throws Exception {
- super.setUp();
- hasha =new Hashtable();
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
-
- }
-
- public void testBodyStatus() {
-
- assertNotNull(hasha);
-
- assertTrue(hasha.isEmpty());
- }
-
- public void testBodySame() {
-
- hashb=hasha;
- Assert.assertSame(hasha,hashb);
- }
-
- public static TestSuite suite() {
- return new TestSuite(JunitB.class);
- }
-
- public static void main(String args[]) {
- junit.textui.TestRunner.run(suite());
-
- }
- }
以上为JUNIT的简单测试样例,不需过多考虑性能及规范,但资深JAVA开发者建议:
一、不要在测试用例的构造函数中做初始化
答案是重载测试用例的setUp()方法进行初始化。
二、不要假定测试用例中测试的执行次序
好的习惯是保持测试之间的独立性,使得它们在任何次序下执行的结果都是相同的。
三、测试要避免人工干预
经验二讲的是不同的测试要避免相关性,而经验三讲的其实就是测试要避免自相关。
四、在子类中调用父类的setUp() 和tearDown()
五、不要硬性规定数据文件的路径
六、把测试的代码和被测的代码放在同样的目录下
七、正确命名测试
八、书写测试时要考虑地区和国家设置
九、利用Junit 的自动异常处理书写简洁的测试代码
事实上在Junit 中使用try-catch 来捕获异常是没有必要的,Junit 会自动捕获异常。那些没有被捕获的异常就被当成错误处理。
十、充分利用Junit 的assert/fail 方法
assertSame()用来测试两个引用是否指向同一个对象
assertEquals()用来测试两个对象是否相等
十一、确保测试代码与时间无关
十二、使用文档生成器做测试文档。
以上资料来自:“JUnit使用经验”,原作:Andy Schneider Richard Dallaway 等,编译:PMT 测试工作组。
分享到:
- 2007-06-18 18:26
- 浏览 4548
- 评论(0)
- 论坛回复 / 浏览 (0 / 6393)
- 查看更多
相关推荐
简单介绍了Junit的安装过程与实例应用。应用的问题是软件测试中的佣兵问题,整个文档中有代码及测试结果,可以更好地帮助学生了解Junit单元测试中的作用。
JUnit 5是JUnit的最新一代测试框架,它为Java平台上的开发者测试提供了最新的基础,特别专注于Java 8及更高版本的测试能力,并支持不同风格的测试方法。JUnit 5由三个不同子项目的组合构成,它们分别是JUnit ...
JUnit5支持多个Java版本,包括Java 8及以上版本。这意味着开发人员可以根据项目的实际需求选择合适的Java版本进行开发和测试。 **1.3 获取帮助** 对于使用过程中遇到的问题或疑问,可以参考官方文档、社区论坛或是...
模板方法模式在JUnit的测试运行器(Runner)中有所体现,如`BlockJUnit4ClassRunner`,它定义了执行测试的基本结构,而子类可以覆盖其中的方法来定制测试执行的细节。 最后,JUnit的可扩展性体现在其插件机制上,...
5. 模板方法模式:JUnit的测试框架本身就是一个模板方法设计模式的例子。每个测试用例都遵循一个固定的执行流程(设置-执行-验证-清理),这个流程由JUnit框架定义,而具体的测试逻辑则由用户编写。 6. 装饰者模式...
扩展模型概览(Overview)、注册扩展(RegisteringExtensions)、条件测试执行、测试实例后处理(TestInstancePost-processing)、参数解析(ParameterResolution)、测试生命周期回调(TestLifecycleCallbacks)、...
扩展可以注册到JUnit Jupiter的测试引擎中,从而影响测试的执行,包括条件测试执行、测试实例的后处理、参数解析、测试生命周期回调、异常处理、提供测试模板的调用上下文以及在扩展中保持状态。 18. 从JUnit 4迁移...
标题"activti实例带完整JUnit4测试"表明这是一个关于Activiti的工作流程引擎的实例项目,其中包含了使用JUnit4进行的全面测试。Activiti是一个开源的业务流程管理(BPM)和工作流系统,它允许开发者通过模型驱动的...
“模板方法模式”(Template Method Pattern)体现在JUnit的测试执行流程中。`BlockJUnit4ClassRunner`定义了一个测试执行的大致框架,而具体步骤如设置、执行和清理由子类根据需要重写。 总结来说,JUnit在设计上...
JUnit5相对于之前的版本(如JUnit4)进行了重大的改进与扩展,它分为三个主要模块:JUnit Platform、JUnit Jupiter和JUnit Vintage。 - **JUnit Platform**:用于执行测试的引擎,不仅支持JUnit5格式的测试,还能...
这些特性包括注解的改进、断言的增强、假设的使用、测试禁用、条件测试执行、标签和过滤、测试实例生命周期管理、嵌套测试、构造函数和方法的依赖注入、测试接口和默认方法、重复测试、参数化测试、消费参数、测试...
- 模板方法模式:JUnit的Test接口定义了测试的生命周期,具体实现由子类覆盖模板方法完成,如setup和tearDown。 - 钩子函数:@Before、@After等注解体现了观察者模式,它们在特定事件(如测试开始或结束)触发时...
这里我将提供一个简单的JUnit测试用例模板作为示例。JUnit是目前Java社区中使用最广泛的单元测试框架之一。 JUnit 5 测试用例模板 JUnit 5是JUnit框架的最新版本,它引入了许多新特性和改进。以下是JUnit 5中编写...
在JUnit中,`TestSuite`类充当了组合模式的角色,它可以包含多个`TestCase`实例,这样就可以将多个测试案例组合在一起,形成一个大的测试集合。 - **组合测试案例**:通过组合模式,JUnit允许用户将多个`TestCase`...
6. **模板方法模式**:JUnit的TestWatcher是一个抽象类,提供了模板方法,允许子类在特定测试事件发生时执行自定义操作,如在测试失败时生成详细的日志。 在实际使用中,开发者还可以结合其他设计模式,如单例模式...
### JUnit 5.7: 深入理解单元与集成测试 #### 一、概述 **1.1 什么是JUnit 5?** JUnit 5是JUnit框架的最新版本,它是一个广泛使用的Java编程语言的单元测试框架。JUnit 5在设计上与JUnit 4相比有了重大的改进,...
### JUnit 完整教程 #### 一、JUnit 概述与...通过以上实例,可以看出 JUnit 提供的强大功能和灵活性,使得开发者能够方便地编写和维护高质量的测试代码。无论是简单的功能验证还是复杂的依赖模拟,JUnit 都能胜任。
这个"spring+springmvc+mybatis 简单实例"是一个基础教程,旨在帮助初学者理解这三大框架如何协同工作。 首先,Spring是一个全面的后端开发框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能,使得代码更加...