Junit4学习(一)新建Junit4工程
一,学习Junit4,学以致用
二,熟悉编写流程
工具:Eclipse,Junit包,hamcrest.core包
1,打开Eclipse开发工具,新建工程:file->Java Project或者使用快捷键(alt+shift+N)

并起名工程名字:junit4Demo2
2,创建被测试数据的包文件:在生成的junit4Demo2工程下的src源文件夹下创建包:com.duo.util

3,新建被测试类:Calculate

4,在新建的被测试类中输入代码:
package com.duo.util;
public class Calculate {
public int add(int a, int b){
return a + b;
}
public int subtract(int a, int b){
return a - b;
}
public int multiply(int a, int b){
return a * b;
}
public int divide(int a, int b){
return a / b;
}
}
5,导入junit4 jar包(为什么这是时候导入,原因就是编码的一种习惯,需要什么在引入什么)
右键工程名:junit4Demo2->Build Path->Add Libraries

选择junit,下一步,查看导入的junit包的位置

“Finish”即可
导入后的工程结构如下:

6,在src目录下创建junit测试类(后有优化方法和代码)
右键com.duo.util包,新建“测试类”:CalculateTest

基本代码:
package com.duo.util;
import static org.junit.Assert.*;
import org.junit.Test;
public class CalculateTest {
@Test
public void testAdd(){
assertEquals(6, new Calculate().add(4, 2));
}
}
7,运行结果:

三,优化:
优化主要是两方面优化:
A,结构优化:业务代码和测试代码分离,使结构清晰
B,测试方法优化:可能一个测试类中有N多方法,不可能一个个手动复制粘贴那个人肉操作;工具能够处理的事情还是交给工具做,提高效率;个人还是专注于业务代码较为合适和正道;
优化开始:
A ,结构优化:业务代码和测试代码分离
1,新建“源文件”夹:右键工程结构名junit4Demo2->Source Folder->test
可以和第二部分的第7步骤的工程结构作对比

B,测试方法优化:
1,通过工具自带的方法可以一次性生成被测试类的所有方法:
右键test/com.duo.util,选择JUnit Test Case选项:

Next:
可能有时候下面的红框部分没有对应的被测试类:通过点击“Browse”,输入关键字查询:


并命名:

点击“Next”,选择想生成的被测试方法:

“Finish”即可
运行结果:

注:要是想单独运行一个测试方法则可以通过下面方法:展开测试类,选中其中的某一个方法右键运行即可

三,学习反思
1,测试方法上必须使用@Test进行修饰
2,测试方法必须使用public void进行修饰,不能带有任何参数
3,新建一个源代码目录存放我们的测试方法
4,测试类的包和被测试类的包保持一致
5,测试单元中的每一个测试方法必须可以独立测试,测试方法中不能有任何依赖
6,测试类使用Test作为后缀(不是必须)
7,测试方法使用test作为方法的前缀(不是必须)
Junit4学习(一)新建Junit4工程的更多相关文章
- .NET MVC 学习笔记(一)— 新建MVC工程
一..NET MVC 学习笔记(一)—— 新建MVC工程 接触MVC有段时间了,一直想找机会整理一下,可是限于文笔太差,所以一直迟迟羞于下手,想到最近做过的MVC项目也有一些了,花点时间整理一下方便以 ...
- Junit4学习使用和总结
Junit4学习使用和总结 部分资料来源于网络 编辑于:20190710 一.Junit注解理解 1.@RunWith 首先要分清几个概念:测试方法.测试类.测试集.测试运行器.其中测试方法就是用@T ...
- 新建android工程的时候eclipse没有生成MainActivity和layout布局
一.新建android工程的时候eclipse没有生成MainActivity和layout布局 最近由于工作上的原因,开始学习Android开发,在入门的时候就遇到了不少的坑,遇到的第一个坑就是&q ...
- Android开发中遇到的问题(二)——新建android工程的时候eclipse没有生成MainActivity和layout布局
一.新建android工程的时候eclipse没有生成MainActivity和layout布局 最近由于工作上的原因,开始学习Android开发,在入门的时候就遇到了不少的坑,遇到的第一个坑就是&q ...
- Microsemi Libero系列教程(二)——新建点灯工程
前言 上一篇文章,介绍了Microsemi Libero系列教程(一)-Libero开发环境介绍,下载,安装与注册,作为嵌入式开发中的Hello World,点灯是再也基础不过的实验了,通过点灯实验, ...
- CCS 6新建TMS320F2812工程
准备材料 CCS6 下载地址:http://www.ti.com/tool/ccstudio F2812的C语言头文件 下载地址:http://www.ti.com/lit/zip/sprc097 安 ...
- 如何在Flash Builder里新建ActionScript工程
新建ActionScript工程 1. File > New > ActionScript Project 2. 按照提示完成工程的创建 使程序直接在Flash Player中运行 1. ...
- ] 解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题
] 解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题 标签: myeclipsejavawebWeb App Libraries 2013-10-16 1 ...
- Cocos Code IDE新建lua工程报错解决方案
今天想用cocos code IDE新建一个工程,但是控制台报错:Read json file null failed, the reason is:null.我下载的是官方3.5源码,sdk,ndk ...
- Android Studio新建Jni工程
2.2版本的Android Studio支持新建Jni工程,不用再像以前自己构建工程目录,首先把自己的升级自己的AS到2.2以上 然后打开Tools->Andorid->SDK manag ...
随机推荐
- Java开发工具(Eclipse中内容辅助键的使用)
* A:Alt+/ 起提示作用* B:main+alt+/,syso+alt+/,给出其他提示* C:补充输出语句,选中需要输出的部分,alt+/选择最后一项即可* C:定义自己的alt + / * ...
- 齐博cms 7.0 漏洞分析
** 0x01 原理分析 ** 还是很早之前爆出来的漏洞,现在拿出来学习一下,参考阿里巴巴: https://security.alibaba.com/... 漏洞发生在/inc/common.inc ...
- 一个基于JRTPLIB的轻量级RTSP客户端(myRTSPClient)——解码篇:(二)用ffmpeg解码音频
其实这篇的内容和(一)用ffmpeg解码视频基本是一样的,重点还是给ffmpeg指定callback函数,而这个函数是从RTSP服务端那里获取音频数据的. 这里,解码音频的示例代码量之所以比解码视频的 ...
- node中package.json全方面解析
Name 必须字段. 小提示: 不要在name中包含js, node字样: 这个名字最终会是URL的一部分,命令行的参数,目录名,所以不能以点号或下划线开头: 这个名字可能在require()方法中被 ...
- Spring Date Jpa on update current_timestamp 自动维护创建时间和更新时间
在数据库里设置默认值current_timestamp可以维护创建时间,设置on update current_timestamp 可以维护更新时间.在JPA中应该如何去做呢?这里还是以上篇Topic ...
- 基于轻量级ORM框架Dapper的扩展说明
这里简单的介绍一下本人基于Dapper作的一些简单的扩展,供大家参考. 为何要使用这款框架,相信大家看到下面排名就清楚了 其实在各大网站上,我们大概都会看到这样的一个对比效果图,在超过500次poco ...
- Kubernetes e2e test and test framework
前言 Kubernetes的成功少不了大量工程师的共同参与,而他们之间如何高效的协作,非常值得我们探究.最近研究和使用了他们的e2e测试和框架,还是挺有启发的. 怎样才是好的e2e测试? 不同的人写出 ...
- win10的power shell可以学习少部分linux命令_功能与cmd类似
更新帮助文件:
- python进阶学习(三)
本节通过SQLite了解数据库操作 ------------------------- 数据库支持 使用简单的纯文本只能实现有退限的功能,所需要引入数据库,完成更强大的功能,本节使用的简单数据库SQL ...
- Python学习笔记2
闭包 闭包用起来简单,实现起来可不容易. 另一个需要注意的问题是,返回的函数并没有立刻执行,而是直到调用了f()才执行.我们来看一个例子: def count(): fs = [] for i in ...