IDEA 单元测试 导入JUnit4到项目
一、IDEA自带JUnit4的jar包,现在让我们来导入。
Step 1. IDEA最上面一栏的菜单栏中,选File->Project Structure(从上往下第11个),弹出窗口左边有一个列表,选Module。
Step 2. 右侧有一个带3个标签的窗口,选Dependencies标签
Step 3. 下面的列表框列出了项目的jar包,右侧有个绿色的'+'号,左键点击,在左键菜单里选第一个
Step 4. 在弹出的文件浏览窗口,选择"IDEA的安装目录\lib\junit-4.11.jar" 选完后别忘了点击对号和OK
测试类写好后右键测试类名,在右键菜单选 Run ‘AddOperationTest’,一切似乎就要搞定了
等等,突然报错,输出窗口里一行令人不悦的红字出现了
Java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
这个错误的原因是,junit-4.11版本还需要一个jar包叫做hamcrest(IDEA官方帮助传送门htt把ps://ww中w.jetbrains.c文om/idea/help/去configuring-testing-libraries.h掉tml)
在上面的Step 4.中,还需要选择"IDEA的安装目录\lib\hamcrest-core-1.3.jar"
二、单元测试
import static org.junit.Assert.assertEquals; import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test; import com.MyMath;
//单元测试
public class MyMathTest { private static MyMath mm; // @Before //每个测试方法执行前自动调用
@BeforeClass //加载类的字节码时就执行,只执行一次
public static void init(){
mm = new MyMath();
}
// @After
@AfterClass
public static void destory(){
mm = null;
} /*
* 测试方法:用于测试的方法
* 1、必须是pulbic的
* 2、必须没有返回值
* 3、方法参数为空
* 4、有@Test注解
*/ @Test
public void testAdd() {
// MyMath mm = new MyMath();
int result = mm.add(1, 2);
// 断言
assertEquals(3, result);//期望值和实际运行结果进行比对。成功,绿色的bar
} @Test
public void testDivide() {
// MyMath mm = new MyMath();
int result = mm.divide(10, 2);
assertEquals(5, result);
} //测试异常
@Test(expected=java.lang.ArithmeticException.class)
public void testException() {
// MyMath mm = new MyMath();
mm.divide(10, 0);
}
//测试方法的执行效率
@Test(timeout=100)//即使期望值和实际值相同的。超出运行时间,也是失败的。time指定的值为毫秒值。
public void testEfficiency() {
// MyMath mm = new MyMath();
int result = mm.add(1, 2);
// 断言
assertEquals(3, result);
}
}
IDEA 单元测试 导入JUnit4到项目的更多相关文章
- Android笔记——导入Github开源项目CircleRefreshLayout
百度n久都找不到android studio导入第三方类库的正确方法,纠结睡不着 ,最后终于蒙到了方法,原来想太多了 ---------------------------------------- ...
- eclipse导入maven web 项目 但是不显示成web 项目
http://blog.csdn.net/jun55xiu/article/details/9028403 1:导入Maven webapp项目(以extdirectspring-demo为例): i ...
- RN 导入原有Xcode项目中,引入Pod依赖出现的问题与解决
RN 导入原有Xcode项目中,引入Pod依赖出现的问题与解决 前言 最近学习React Native技术.将RN引入到原来Xcode项目中有一步:给原来Xcode项目添加所需要的Pod依赖 写好Po ...
- React Native 导入原生Xcode项目总结与记录
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- Android 导入引用第三方项目
环境:Android Studio 1.4 1 以源工程形式导入 第一步,导入项目 File--New--Import Module--->设置导入后的项目名称 第二部,在自己工程中添加Depe ...
- maven导入多模块项目
maven导入多模块项目 一.SVN上Maven多模块项目结构 使用eclipse导入SVN上的Maven多模块项目 Maven多模块项目所在SVN目录 二.eclipse通过SVN导入到工作空间 ...
- idea导入本地maven项目
首先把项目关闭File->Close Project 否则会将项目导入到当前项目中 回到主界面,点击Import Project 一定要选择项目的pom文件 默认设置,继续往下走 默认配置,下一 ...
- Eclipse导入别人的项目报错:Unable to load annotation processor factory 'xxxxx.jar' for project
使用eclipse导入别人的项目时候,报错Unable to load annotation processor factory 'xxxxx.jar' for project. 解决方案 1.项目右 ...
- Eclipse 如何导入MyEclipse的项目
Eclipse 如何导入MyEclipse的项目 CreateTime--2018年3月8日09:53:55 Author:Marydon 1.Eclipse导入MyEclipse的项目方法,跟导 ...
随机推荐
- c++ 的类 和 类继承, 什么是c++中的基类和派生类?
闲云潭影日悠悠,物换星移几度秋 你既然已经做出了选择, 又何必去问为什么选择.鬼谷绝学的要义, 从来都不是回答, 而是抉与择 普通类 #ifndef TABTENN0_H_ #define TABTE ...
- Git 错误集锦
执行git push提示Everything up-to-date 原因: ). 你想提交到分支, 却提交到主分支, 而主分支已经为最新, 查看当前分支是什么, git branch git push ...
- 对微软Microsoft Dynamics CRM 的认识
MS CRM的认识 技术层面: MS CRM使用了当前最为流行的Web Service作为数据交互的手段,这给我们的二次开发和系统级的集成带来了无可比拟的方便性.易用性.我们不用关心如何去访问CRM数 ...
- 第三百八十二节,Django+Xadmin打造上线标准的在线教育平台—xadmin管理员详情页面布局,导航图标设置
第三百八十二节,Django+Xadmin打造上线标准的在线教育平台—xadmin进阶 1.后台管理员详情页面布局 后台管理员详情页面,区块是可以拖动的,而且分为了很多个区块 这个页面的布局在xadm ...
- e739. 创建一个标签组件
// The text is left-justified and vertically centered JLabel label = new JLabel("Text Label&quo ...
- 阿里云Redis开发规范[转]
一.键值设计 1. key名设计 (1)[建议]: 可读性和可管理性 以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id ugc:video:1 (2)[建议]:简洁性 ...
- linux中service的问题
1.描述问题 2.解决方案 systemctl stop firewalld systemctl mask firewalld Then, install the iptables-services ...
- git解决冲突(rebase版)
当使用git rebase碰到冲突时, git rebase <Remote Branch>/<Your Branch> 信息如下: error: Failed to merg ...
- TensorFlow:tf.train.Saver()模型保存与恢复
1.保存 将训练好的模型参数保存起来,以便以后进行验证或测试.tf里面提供模型保存的是tf.train.Saver()模块. 模型保存,先要创建一个Saver对象:如 saver=tf.train.S ...
- 在swift中使用线程休眠
C#和php都有sleep让线程休眠指定时间后再继续执行后面的代码,swift中应该如何呢?首先,找一下objective-c版本是怎么做的 [self performSelector:@select ...