用eclipse编写单元测试的时候,可以直接选中某个类,然后右键new新疆一个junit case,界面如下图1所示:

图1:新建test case

选 择图1中的JUnit Test Case,然后点击Next,在接下来的界面中,注意Source folder不要放在源文件的目录,最佳实践应该是一个test目录,并且包名与源文件同名,然后点击Next,下一个界面就是选择Test Methods,选择要测试的方法名,然后Finish,就会自动生成一些测试代码,然后就可以自己修改了。

图2:运行单元测试代码

编写完单元测试代码以后,就可以运行了,运行方法如上图2所示。

在编写单元测试代码的时候,要注意如下几个方法(非常重要,以下都是以JUnit4为例):

(1)测试方法上必须使用@Test进行修饰;

(2)测试方法必须使用public void进行修饰,并且不能带有任何的参数;

(3) 新建一个源代码目录来存放我们的测试代码,如果是maven项目的话,会生成3个目录,一个是源代码目录(src/main/java),一个是单元测试 目录(src/test/java),一个是资源目录(src/main/resources),使用maven的时候,我们把单元测试代码放在测试目录 中;

(4)测试类的包应该和被测试类的包名保持一致;

(5)测试单元中的每个方法必须可以独立测试,测试方法间不可以有任何的依赖;

(6)测试类使用Test作为类名的后缀(不是一定要这样做,这是最佳实践);

(7)测试方法使用test作为方法名的前缀(不是一定要这样做,这是最佳实践);

上面的这些注意点,如果使用eclipse自动生成的JUnit测试代码,就会发现非常符合,因为这都是最佳实践,一般都是建议这样去写,忘记写的时候,可以生成一些代码来参考下。

单元测试的目的只为了证明写的代码没有问题,即代码是对的,那么测试出现failure的原因有哪些呢,一般有如下两种情况:

(1)程序没有错,能够正常有返回结果,但是返回的结果与我们预期的不一样,即断言方法判断失败。

(2)程序本身就有错,代码运行中就报错了,比如出现除数异常、类型错误等等。

JUnit编写单元测试代码注意点小结的更多相关文章

  1. EclipseADT编写单元测试代码的步骤

    1. 写一个类 extends AndroidTestCase 2. 写一个测试方法    a.必须是public     b.必须抛出异常给操作系统 public void textAdd()thr ...

  2. python的单元测试代码编写流程

    单元测试: 单元测试是对单独的代码块分别进行测试, 以确保它们的正确性, 单元测试主要还是由开发人员来做, 其余的集成测试和系统测试由专业的测试人员来做. python的单元测试代码编写主要记住以下几 ...

  3. 编写高质量代码改善C#程序的157个建议——建议155:随生产代码一起提交单元测试代码

    建议155:随生产代码一起提交单元测试代码 首先提出一个问题:我们害怕修改代码吗?是否曾经无数次面对乱糟糟的代码,下决心进行重构,然后在一个月后的某个周一,却收到来自测试版的报告:新的版本,没有之前的 ...

  4. 使用Junit进行单元测试

    使用Junit进行单元测试 一.目的和要求 JUnit是一款由Erich Gamma(<设计模式>的作者)和Kent Beck(极限编程的提出者)编写的开源的回归测试框架,供Java编码人 ...

  5. java如何使用JUnit进行单元测试

    注:所有内容都是在eclipse上实现,关于eclipse的安装和jdk的安装配置,请看:http://www.cnblogs.com/fench/p/5914827.html 单元测试是什么? 百度 ...

  6. JUnit 4 单元测试

    Individual Project ——JUnit 4 单元测试 学习到JUnit单元测试,我拿来测试之前写过的一个计算器(两个依存类:Calc.java CalcFunction.java).代码 ...

  7. Android之如何使用JUnit进行单元测试

    转的:http://www.blogjava.net/qileilove/archive/2014/05/19/413824.html Android中如何使用JUnit进行单元测试 在我们日常开发a ...

  8. Spring(3)—— Junit框架单元测试

    Junit主要用于单元测试,即白盒测试.它是一个开源的由JAVA开发的一个用于测试的框架. Junit的几个基本概念:TestCase,TestSuite,TestFixtrue TestCase:代 ...

  9. Intellij Idea系列之导Jar包与编写单元测试(二)

     Intellij Idea系列之导Jar包与编写单元测试(二) 一.初衷 对于很多的初学者来说,Intellij如何导入jar包感到很迷惑,甚至在网上搜过相关文章之后还是云里雾里,本博客通过图文并茂 ...

随机推荐

  1. UVA 10940 Throwing cards away II

    题意略: 先暴力打表发现规律 N=1 ans=1N=2 ans=2N=3 ans=2N=4 ans=4N=5 ans=2N=6 ans=4N=7 ans=6N=8 ans=8N=9 ans=2N=10 ...

  2. unicode和utf8之间的关系

    ,字符编码是计算机技术的基石,想要熟练使用计算机,懂得一点字符编码的知识,还是很有必要的. 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit ...

  3. React中input框设置value报错解析

    react input 不设置onChange的常见错误截图 表单是前端非常重要的一块内容,并且往往包含了错误校验等逻辑.  React对表单元素做了专门的优化处理,他对表单元素做了一些抽象,使得他们 ...

  4. ffmpeg muxer 参数简要说明

    参数 值 说明 movflags MP4 Muxer 标记 rtphint 增加RTP的hint track empty_moov 初始化空的moov box frag_keyframe 在视频关键帧 ...

  5. C#发送POST,GET,DELETE请求API,并接受返回值

    发送POST请求 /// <summary> /// API发送POST请求 /// </summary> /// <param name="url" ...

  6. C#集合类:动态数组、队列、栈、哈希表、字典(转)

    1.动态数组:ArrayList 主要方法:Add.AddRange.RemoveAt.Remove 2.队列:Queue 主要方法:Enqueue入队列.Dequeue出队列.Peek返回Queue ...

  7. HDU 6108.小C的倍数问题 (2017"百度之星"程序设计大赛 - 初赛(A)1001)

    补完题?不存在的. 这么久了,还是一条咸鱼,看一堆乱七八糟的东西,写一堆没用的水题,一点进步都没有,还是那么菜,菜的掉渣. 这个百毒之星初赛A还会写两道最简单的水题,初赛B一点也不会,菜的难过... ...

  8. 【bzoj3261】【最大异或和】可持久化trie树+贪心

    [pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=61705397 Description 给定一个非 ...

  9. symbol(s) not found for architecture arm64

    问题如下:       解决:更改环境 ok   Standard architectures (armv7, arm7s)

  10. Bluetooth篇 开发实例之五 为什么无线信号(RSSI)是负值?

    原文:http://www.cnblogs.com/lele/articles/2832885.html   为什么无线信号(RSSI)是负值 答:其实归根到底为什么接收的无线信号是负值,这样子是不是 ...