1、什么是Junit
Junit即单元测试,是JAVA语言的单元测试框架,是对程序的一个方法所进行的测试
一般都是由程序员自己通过Junit来进行测试,因此单元测试也叫程序员测试;
如果测试人员熟悉程序员的代码逻辑也可以进行接口测试,可用于进行接口测试,即白盒测试。
2、如何使用Junit
要使用Junit测试框架,必须要在maven项目的基础上才能使用,因此这里先对maven进行介绍。
★maven介绍
1)是一种特殊的JAVA project,通过maven创建后的项目上面会有一个M字样的标志,如下图所示。
2)在maven中集成了junit测试包,应该说maven可以集成任何你想的到或者想不到工具插件。
3)优势:如果不是maven项目,如果使用到某个JAR包,就需要手动就添加,但通过maven创建的项目就不需要。
4)作用:可进行编译,打包,也可以进行模块管理
★如何创建maven项目
第一步:
在eclipse中点击new->other来创建一个maven项目
第二步:
在打开的的对话框中选择Maven Project,然后点击下一步
第三步:
勾选create a simple project,然后再点击next
注意:
第一次使用maven时需要下载,如果速度慢需要等待很长一段时间
第四步:
在new maven project中填写group id ,artifact id(文件夹名字),其它默认或者不填,然后finish
group id与artifact id解释如下:
groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。
groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是项目名称即tomcat。
第 五步:
按以上步骤即可完成maven项目的创建了。
以下为所创建的maven项目即test_junit各个文件夹的解释:
1)src/main/java:存放JAVA代码
2)src/main/resources:存放JAVA的资源文件
3)src/test/java:存放测试的JAVA代码
4)src/test/resources:存放测试JAVA代码需要用到的一些资源文件
5)pox.xml:用于描述maven项目的一些相关信息,比如:创建的test_junit的版本信息,Group Id,包的结构等等,都可以在pox.xml中查看到。
第六步:
如何通过maven引入需要用到的junit的jar包。
1)打开pox.xml文件,选择pox.xml标签
2)然后在pox.xml中输入以下代码,来引入相关的junit的JAR包,代码如下:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
注意:
这段代码的意思是从中央仓库拿到代码后放到本地仓库中。
中央仓库的地址为:
mvnrepository.com/artifact/org.hamcrest/hamcrest-core/1.3
本地仓库查看方法:
windows->preferuserences->maven->user settings
然后保存后,重新打开test_junit项目,就可以看到maven dependeccies,即所引入的jar包。
3、如何进行单元测试
一共有二种方法,分别如下:
方法一:
通过继承类TestCase,测试方法必须以test开头来命名
例如:
public class Demo1 extends TestCase{
public void test1(){
...
}
}
注意:这种方法中写的所有的方法都必须是以test开头,例如:testXXXX
执行上面的代码后会在左边显示出这两个测试方法是否执行成功。绿色代表执行成功,红色代表执行失败,且test1跟test2方法上面的会显示X。
方法二:
需要在测试方法前面加入注解,而注解的类型分别如下:
@Test:表明这是一个测试方法
@Before:每执行一个测试方法前都会先执行被标注了此注解的方法
@After:每执行一个测试方法后都会先执行被标注了此注解的方法
@BeforeClass:测试用例初始化时执行被@BeforeClass标注的方法,只会执行一次
@AfterClass:当所有测试执行完毕之后,执行进行收尾工作,也就是执行被@AfterClass标注的方法,只会执行一次
格式:
@Test
public void method1(){
...
}
注意:
此时方法名可以随便写,不用一定要写成testXXX了。
例如:
public class Demo2 {
@BeforeClass
public static void method5(){
System.out.println("Demo2.method5()");
}
@Before
public void method3(){
System.out.println("Demo2.method3()");
}
@Test
public void method1(){
System.out.println("Demo2.method1()");
}
@Test
public void method2(){
System.out.println("Demo2.method2()");
}
@After
public void method4(){
System.out.println("Demo2.method4()");
}
@AfterClass
public static void method6(){
System.out.println("Demo2.method6()");
}
}
执行后的结果如下:
注意:
@BeforeClass与@AfterClass所标注的测试方法要定义成static类型才能被执行
4、断言(Assert)
单元测试必须要用到断言,被用来检查非法情况而不是错误情况,即在该程序正常工作时绝不应该发生的非法情况,用来帮助开发人员对问题的快速定位。
常用的API如下:
assertEquals(a,b):判断两个数据是否一致
assertNotEquals(a,b):判断两个数据是否不一致;
assertNull(object):查看对象是否为空
assertNotNull(object):查看对象是否不为空;
assertTrue(...):判断当前运行结果是否为真;
assertFalse(...):判断当前运行结果是否为假;
例如:
assertEquals(3, caculator.getResult());
用于判断通过计算器计算的是否正确
 
5、打包类测试
介绍:
打包类测试,是把所有的测试类打包在一起测试,即在测试方法前引入所有的测试类即可。
优点:
可以一次性的测试所有的方法,而不用一个一个的去跑了。
代码格式如下:
@RunWith(Suite.class)
@Suite.SutieClasses({类1,类2,类3,...})
public class JunitTestAll {
}
例如:
6、断言与异常的区别
断言用在那些你知道绝对不会发生的事情上,但是因为人总是会犯错误,保不准你写出来的东西跟你想的不一样。所以assert用来捕捉的是程序员自己的错误。
但异常(exception)主要用于捕捉的是用户或者环境的错误。
 
 
 
 
 
 
 
 

如何在eclipse中通过Juit进行单元测试的更多相关文章

  1. 如何在Eclipse中设置默认的JSP文件头部编码

    如何在Eclipse中设置默认的JSP文件头部编码 一般,我们为了以后在导入和导出程序的时候(特别是项目较大,文件多)一般都默认文件编码格式为UTF-8 如果你通常都是通过Eclipse来编写程序,那 ...

  2. 在Eclipse中使用JUnit4进行单元测试

    在Eclipse中使用JUnit4进行单元测试(初级篇) 在Eclipse中使用JUnit4进行单元测试(中级篇) 在Eclipse中使用JUnit4进行单元测试(高级篇)

  3. 如何在Eclipse中添加Tomcat的jar包

    原文:如何在Eclipse中添加Tomcat的jar包 右键项目工程,点击Java Build Path 点击Add Library,选择Server Runtime 选择Tomcat版本 此时就看到 ...

  4. 如何在eclipse中安装Jess

    如何在eclipse中安装Jess 浏览:49 | 更新:2014-05-12 16:39 这个文章帮了不少忙,感谢! 但经我实践,还要把插件那些文件向/dropins/sdk下也放一份,才能成功. ...

  5. 如何在Eclipse中配置Tomcat(免安装版)

    如何在Eclipse中配置Tomcat(免安装版) 2013-10-09 23:19wgelgrsh | 分类:JAVA相关 | 浏览642次 分享到:   2013-10-10 17:10提问者采纳 ...

  6. 如何在Eclipse中添加Servlet-api.jar的方法

    方法一: 点击窗口->首选项->java->构建路径->类路径变量->新建:将你的tomcat目录下的common/lib/servlet.jar加进来.如果你建立了一个 ...

  7. 在Eclipse中使用JUnit4进行单元测试(图文教程一)

    在Eclipse中使用JUnit4进行单元测试 单元测试,JUnit4. 这两个有什么关系呢?这就好比(草)单元测试和(割草机).用这个JUnit4工具去辅助我们进行测试.其实不理解这个也没关系,听多 ...

  8. 【Eclipse】如何在Eclipse中使用命令行?

    如何在Eclipse中使用命令行? 虽然我们已经有了像 Eclipse 这样高级的 IDE,但是我们有时候也是需要在开发的时候使用 Windows 的命令行,来运行一些独立的程序.在两个程序中切换来切 ...

  9. 沉淀再出发:如何在eclipse中查看java的核心代码

    沉淀再出发:如何在eclipse中查看java的核心代码 一.前言   很多时候我们在eclipse中按F3键打算查看某一个系统类的定义的时候,总是弹出找不到类这样的界面,这里我们把核心对应的代码加进 ...

随机推荐

  1. 163邮箱问题:554 DT:SPM 163 smtp5,D9GowACHO7RNWNdXmXs1Bw--.9035S2

    最近公司需要开发一个自定义邮箱功能,上网查询一下,利用163邮箱发送邮件. 由于163 的反垃圾机制,(坑爹机制.) 一般出现 554有在1)测试中用了test,测试,关键字在主题或者内容里面. 但是 ...

  2. [转] mysql 存储引擎

    最常用的存储引擎 innodb MyISAM MyISAM,这种效率高,不支持事务,不支持外键,每个表有单独的存储文件(多个),方便管理. innodb,一般默认的都是innodb,效率也不低,支持事 ...

  3. linux 时间同步的2种方法

    转载自: http://blog.51yip.com/server/1474.html 由于硬件的原因,机器或多或少的根标准时间对不上,一个月的误差几秒到几分钟不等.对于服务器来说时间不准,会有很多麻 ...

  4. WPF 控件总结

    内容控件:1.Button:当Button.IsCancel="True"时,点击按钮,对话框关闭.当Button.IsDefault="True",按回车触发 ...

  5. sdk开发时,对外暴露的接口封装

    思考,用同步还是异步? 实质就是屏蔽一些东西,让使用者直接传参数 拿结果 而不用关心具体实现 eg.登陆接口 1.定义接口LoginCallBack,两个函数 请求成功和失败 public inter ...

  6. 解决httpd: Could not reliably determine the server's fully qualified domain name

    解决方案: 用记事本打开 httpd.conf 将里面的 #ServerName localhost:80 注释去掉即可. 再执行 httpd 然后可以通过浏览器访问 http://localhost ...

  7. Eclipse中.calsspath文件解析

    来自帅气的Sublime Text

  8. jsp中超链接路径的写法

    主题 超链接不就是一个地址字符串吗?这能有什么花头? LZSB! 曾经我也是这么想的.... 最近对apache的学习让我对网页中超链接,CSS,js的路径的写法有了一些新的认识. 所以这篇文章主要分 ...

  9. 做为一个前端工程师,是往node方面转,还是往HTML5方面转

    文章背景:问题本身来自于知乎,但是我感觉这个问题很典型,有必要把问题在整理一下,重新分享出来. 当看到这个问题之前,我也碰到过很多有同样疑惑的同学,他们都有一个共同的疑问该学php还是nodejs,包 ...

  10. Session 潜在bug防范

    注意: Session的使用一定要及时的清理,因为它是“全局”的(包括其生命周期),所以在使用Session保存状态时,不用时要及时的NULL掉,小心潜在的Bug.