Junit3.8
使用Junit的最佳实践:新建一个名为test的source folder,用于存放测试类源代码目标类与测试类应该位于同一个包下面,这样测试类中就不必导入源代码所在的包,因为他们位于同一个包下面
测试类的命名规则:假如目标类是Calculator,那么测试类应该命名为TestCalculator或者是CalculatorTest
Junit:单元测试不是为了证明是对的,而是为了证明没有错误。
测试用例(Test Case)是单元测试的一个很重要的方面。测试类必须要继承于TestCase父类。
单元测试主要是用来判断程序的执行结果与自己期望的结果是否一致。
在junit 3.8中,测试方法需要满足如下原则:public的,void的,无方法参数,方法名称必须以test开头.
Test Case之间一定要保持完全的独立性,不允许出现任何的依赖关系。我们不能依赖于测试方法的执行顺序。
关于setUp与tearDown方法的执行顺序:
setUp()
testXXX()//测试方法
tearDown()
测试之前是什么状态,测试执行完毕后就应该是什么状态,而不应该由于测试执行的原因导致状态发生了变化。
代码示例:
package junit; 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;
}
} /*
*测试方法
*/
package junit; import junit.framework.Assert;
import junit.framework.TestCase; public class LargestTest extends TestCase
{
private Largest largest; public void setUp()
{
largest = new Largest();
} public void testGetLargest()
{
int[] array = { 1, 9, -10, -20, 23, 34 }; int result = 0; try
{
result = largest.getLargest(array);
}
catch (Exception ex)
{
Assert.fail("测试失败");
} Assert.assertEquals(34, result);
} public void testGetLargest2()
{
Throwable tx = null; int[] array = {}; try
{
largest.getLargest(array); Assert.fail("测试失败");
}
catch (Exception ex)
{
tx = ex;
} Assert.assertNotNull(tx); Assert.assertEquals(Exception.class, tx.getClass()); Assert.assertEquals("数组不能为空!", tx.getMessage());
} public void testGetLargest3()
{
Throwable tx = null; int[] array = null; try
{
largest.getLargest(array); Assert.fail();
}
catch (Exception ex)
{
tx = ex;
} Assert.assertNotNull(tx); Assert.assertEquals(Exception.class, tx.getClass()); Assert.assertEquals("数组不能为空!", tx.getMessage());
}
}
Junit3.8的更多相关文章
- 记一个mvn奇怪错误: Archive for required library: 'D:/mvn/repos/junit/junit/3.8.1/junit-3.8.1.jar' in project 'xxx' cannot be read or is not a valid ZIP file
我的maven 项目有一个红色感叹号, 而且Problems 存在 errors : Description Resource Path Location Type Archive for requi ...
- Junit3断言
在Robotium自动化测试的过程中,发现没有断言的脚本是没有意义的,现整理Junit3和Junit4的断言,供日后查阅. http://junit.org/ Junit3断言API: http:// ...
- Junit3与Junit4的区别
Junit4最大的亮点就是引入了注解(annotation),通过解析注解就可以为测试提供相应的信息,抛弃junit3使用命名约束以及反射机制的方法. /** * 被测试类 */ package co ...
- 三分钟掌握 JUnit3.0
曾经公司做过一个.net的项目,在项目开发的过程中.我们採用的是分层的开发方式,大家先在一起讨论接口, 然后讨论完以后,形成文档,然后依照文档进行开发!这样就有一个问题,你必需要保证你的接口是正确的. ...
- JUnit3 结合一个除法的单元测试说明Assert.fail()的用法
之前一篇博文(JUnit基础及第一个单元测试实例(JUnit3.8))介绍了用JUnit做单元测试的基本方法,并写了一个简单的类Calculator,其中包含了整型加减乘除的简单算法. 本文通过完善其 ...
- junit3对比junit4
本文内容摘自junit实战,感谢作者的无私奉献. 个人觉得每个开源包的版本对比意义不大,闲来无事,这里就来整理一下好了.本文名为junit3对比junit4,但是我通过这篇博客主要也是想统一的来整理下 ...
- JUnit3 和 JUnit4的区别
JUnit3 和 JUnit4的区别 1.JUnit 4使用org.junit.*包而JUnit 3.8使用的是junit.Framework.*;为了向后兼容,JUnit4发行版中加入了这两种包. ...
- Junit3和Junit4使用区别
在项目经常会用到单元测试,这里对Junit在开发中的使用标准及使用方法进行简单的介绍. 1.包目录的定义以及相关jar包的添加 2.Junit3和Junit4分别对测试类的编写 所测试的源代码: pa ...
- junit3和junit4的区别总结
先来看一个例子: 先用junit3来写测试用例,如下: junit3测试结果: 从上面可看出: 1.junit3必须要继承TestCase类 2.每次执行一个测试用例前,junit3执行一遍setup ...
- junit3和junit4的使用区别如下
junit3和junit4的使用区别如下1.在JUnit3中需要继承TestCase类,但在JUnit4中已经不需要继承TestCase2.在JUnit3中需要覆盖TestCase中的setUp和te ...
随机推荐
- 数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置
数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置 2013-05-15 15:08:14 分类: Python/Ruby 数据抓取是一门艺术,和其他软件不同,世界上 ...
- Wince 中如何实现注册表恢复原厂设置
理论: 使用HIVE注册表,系统在完成了第一阶段也就是加载完了boot.hv+binfs之后和加载系统HIVE注册表之前,filesys.exe都会调用OEMIoControl来查询是否需要清除保存在 ...
- C++STL之整理算法
这里主要介绍颠倒.旋转.随机排列和分类4中常见的整理算法 1.颠倒(反转) void reverse(_BidIt _First, _BidIt _Last) _OutIt reverse_copy( ...
- JAVA使用原始HttpURLConnection发送POST数据
package com.newflypig.demo; /** * 使用jdk自带的HttpURLConnection向URL发送POST请求并输出响应结果 * 参数使用流传递,并且硬编码为字符串&q ...
- VB VS2003获取当前进程用户登录
Page.User.Identity.Name获取当前进程用户名称,VS03才可以用
- Linux“Bash”漏洞大爆发
9月25日,国外曝出一个“毁灭级”的Bash漏洞,黑客可利用此漏洞远程执行任意命令,完全控制目标系统! 该漏洞编号为CVE-2014-6271,主要存在于bash 1.14 - 4.3版本中,受影响的 ...
- Java [Leetcode 165]Compare Version Numbers
题目描述: Compare two version numbers version1 and version2.If version1 > version2 return 1, if versi ...
- FFmpeg在Android使用3
android 移植ffmpeg后so库的使用 只需要将我们编译好的ffmpeg的so包(在/obj/local/armeabi/libffmpeg.so)copy到所在ndk下的\platfor ...
- GitHub上README.md教程
最近对它的README.md文件颇为感兴趣.便写下这贴,帮助更多的还不会编写README文件的同学们. README文件后缀名为md.md是markdown的缩写,markdown是一种编辑博客的语言 ...
- Zend Framework 入门(1)—快速上手
1. 安装 从 Zend Framework 的网页上下载最新版本.解压后,把整个目录拷贝到一个理想的地方,比如:/php/library/Zend. 打开 php.ini 文件,确认包含 Zend ...