JUnit编写单元测试代码注意点小结
用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编写单元测试代码注意点小结的更多相关文章
- EclipseADT编写单元测试代码的步骤
1. 写一个类 extends AndroidTestCase 2. 写一个测试方法 a.必须是public b.必须抛出异常给操作系统 public void textAdd()thr ...
- python的单元测试代码编写流程
单元测试: 单元测试是对单独的代码块分别进行测试, 以确保它们的正确性, 单元测试主要还是由开发人员来做, 其余的集成测试和系统测试由专业的测试人员来做. python的单元测试代码编写主要记住以下几 ...
- 编写高质量代码改善C#程序的157个建议——建议155:随生产代码一起提交单元测试代码
建议155:随生产代码一起提交单元测试代码 首先提出一个问题:我们害怕修改代码吗?是否曾经无数次面对乱糟糟的代码,下决心进行重构,然后在一个月后的某个周一,却收到来自测试版的报告:新的版本,没有之前的 ...
- 使用Junit进行单元测试
使用Junit进行单元测试 一.目的和要求 JUnit是一款由Erich Gamma(<设计模式>的作者)和Kent Beck(极限编程的提出者)编写的开源的回归测试框架,供Java编码人 ...
- java如何使用JUnit进行单元测试
注:所有内容都是在eclipse上实现,关于eclipse的安装和jdk的安装配置,请看:http://www.cnblogs.com/fench/p/5914827.html 单元测试是什么? 百度 ...
- JUnit 4 单元测试
Individual Project ——JUnit 4 单元测试 学习到JUnit单元测试,我拿来测试之前写过的一个计算器(两个依存类:Calc.java CalcFunction.java).代码 ...
- Android之如何使用JUnit进行单元测试
转的:http://www.blogjava.net/qileilove/archive/2014/05/19/413824.html Android中如何使用JUnit进行单元测试 在我们日常开发a ...
- Spring(3)—— Junit框架单元测试
Junit主要用于单元测试,即白盒测试.它是一个开源的由JAVA开发的一个用于测试的框架. Junit的几个基本概念:TestCase,TestSuite,TestFixtrue TestCase:代 ...
- Intellij Idea系列之导Jar包与编写单元测试(二)
Intellij Idea系列之导Jar包与编写单元测试(二) 一.初衷 对于很多的初学者来说,Intellij如何导入jar包感到很迷惑,甚至在网上搜过相关文章之后还是云里雾里,本博客通过图文并茂 ...
随机推荐
- android hook 框架 libinject 如何实现so注入
前面两篇 android hook 框架 libinject2 简介.编译.运行 android hook 框架 libinject2 如何实现so注入 实际运行并分析了 Android中的so注入( ...
- (九)经典_STM32_ADC多通道采样的例子
STM32 ADC多通道转换描述:用ADC连续采集11路模拟信号,并由DMA传输到内存.ADC配置为扫描并且连续转换模式,ADC的时钟配置为12MHZ.在每次转换结束后,由DMA循环将转换的数据传输到 ...
- c++ poco StreamSocket tcpclient测试用例
1.代码 #include <iostream> #include "Poco/Net/Socket.h" #include "Poco/Net/Stream ...
- XAudio2播放PCM
XAudio2 是一个跨平台的API,在Xbox 360及Windows中得到支持.在Xbox 360上, XAudio2作为一个静态库编译到游戏可执行文件中.在Windows上,XAudio2提供一 ...
- 【linux高级程序设计】(第十四章)TCP高级应用
文件I/O方式比较 1.阻塞式文件I/O 进程从调用函数开始,直到返回这段时间都处于阻塞状态. 2.非阻塞式文件I/O 如果当前没有数据可操作,将不阻塞当前进程,而是立即返回一个错误信息.需要反复尝试 ...
- bring to front 必须在右边的form上才生效。
- yii2 ftp 的常规操作 上传 下载
<?php function make_directory($ftp_stream, $dir){ // if directory already exists or can be immedi ...
- 「kuangbin带你飞」专题十二 基础DP
layout: post title: 「kuangbin带你飞」专题十二 基础DP author: "luowentaoaa" catalog: true tags: mathj ...
- codevs 2837 考前复习——01背包
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description Aiden马上要考试了,可他还没怎么复习,于是他 ...
- Python数据结构:序列(列表[]、元组())与映射(字典{})语法总结
一.概述:Python中两种基本的数据结构是序列和映射,序列包含:可变的列表和不可变的元组:而当序列不够用时就出现了映射:字典.列表中的元素是可以变化的,元组里面的元素一旦初始化后就不可更改.列表和元 ...