Junit简介

简介:
  1.说来好笑,记得以前单元测试都是在目标类里简单写个main方法。要写的方法多了,结果把整个main方法写得特别长,注释的乱乱的,每当测出问题的时候还觉得自己很聪明,心里美滋滋的。可是,当一个方法需要回头再次测的时候就犯愁了----到底是哪段注释呢!所以,当接触到Junit的时候,就觉得再离不开它了。

  2.Junit是就是我们常用的单元测试工具,它采用测试类和目标类分离,各方法单独执行的方式进行灵活测试,并且它还支持我们的断点。更难能可贵的是,断言可以在我们不必分析测试结果的情况下,就可以知道程序的正确与否。  而且在使用上,也非常简单:
    1>.目标类照常写,测试类写在Source Folder里。其实为了清楚起见,测试类的包结构最好和目标类的包结构完全相同,一个目标类对应一个测试类,测试类的命名是在目标类名字的基础上,前面加Test;
  在测试类里,每个目标方法对应一个测试方法,测试方法的命名是在目标方法的基础上,前面加test。
    2>.测试类要继承Junit的TestCase类;测试方法无需返回值,只是在里面完成测试代码即可。
    3>.在测试方法里,可以通过目标类实例对目标方法进行调用测试。对于有返回值的情况,我们可以接收返回值,并设置一个期望返回值,使用断言方法(assertEquals)判断两者一否一致。
 
 3..各测试方法可以一起执行,也可以单独执行。如果执行过程中出现异常或者期望值和实际值不一致,则相应的Junit窗口会变红并给出提示信息。否则,就是我们最期望看到的满屏绿灯,各测试方法正常运行。
    
    注意,它用到一个Junit的jar包,我用的是junit-3.8.1.jar。
 
目标类:UserService.java
public  class UserService { 
   public  void insert(String user) { 
    System.out.println( "UserService.insert():" + user); 
  } 

   public  void delete(String user) { 
    System.out.println( "UserService.delete():" + user); 
  } 

   public  void update(String user) { 
    System.out.println( "UserService.update():" + user); 
  } 

   public String query(String user) { 
    System.out.println( "UserService.query():" + user); 
     return user; 
  } 
}
 
测试类:TestUserService.java
public  class TestUserService  extends TestCase { 
   public  void testInsert(){ 
    UserService us= new UserService(); 
    us.insert( "Li Lei"); 
  } 
   public  void testDelete(){ 
    UserService us= new UserService(); 
    us.delete( "Han Meimei"); 
  } 
   public  void testUpdate(){ 
    UserService us= new UserService(); 
    us.update( "Jim"); 
  } 
   public  void testQuery(){ 
    UserService us= new UserService(); 
     /**接收实际返回值*/ 
    String result=us.query( "Tom"); 
     /**设置个期望值*/ 
    String expected= "Li Lei"
     /**比较实际值和期望值是否一致,本例中显然是不一致的,所以测试时会出错*/ 
     this.assertEquals(expected, result); 
  } 
}

     本文转自NightWolves 51CTO博客,原文链接: http://blog.51cto.com/yangfei520/308018 ,如需转载请自行联系原作者



相关文章
|
8月前
|
SQL Java 数据库连接
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
【1月更文挑战第2天】 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
322 3
Mybatis之Mybatis简介、搭建Mybatis相关步骤(开发环境、maven、核心配置文件、mapper接口、映射文件、junit测试、log4j日志)
|
IDE Java 测试技术
JUnit 5 简介
著名的Java单元测试框架Junit 4已经出来很长时间了,当时我发现JUnit 5已经处于测试版,就准备写文章来介绍JUnit 5.不过因为还是测试版,所以有些地方还不太完善,我也有点懒没有好好写。
1220 0
|
IDE Java 测试技术
JUnit 4 简介
JUnit4是一个易学易用的Java单元测试框架,使用非常广泛。现阶段的最新版本号是4.12,JUnit5目前正在测试中,所以这里还是以JUnit4为准。
1042 0
|
5月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
3月前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
50 5
|
4月前
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
84 6
|
5月前
|
测试技术
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
75 2
|
5月前
|
测试技术
如何使用 JUnit 测试方法是否存在异常
【8月更文挑战第22天】
135 0
|
5月前
|
Java 测试技术 Maven
Junit单元测试 @Test的使用教程
这篇文章是一个关于Junit单元测试中`@Test`注解使用的教程,包括在Maven项目中添加Junit依赖、编写带有@Test注解的测试方法,以及解决@Test注解不生效的常见问题。