三分钟学会JUnit单元测试

简介:  之前在做.net项目的时候,如果需要测试,可以建立一个单元测试项目:

 之前在做.net项目的时候,如果需要测试,可以建立一个单元测试项目:


15.png

 在java中也一样,进行单元测试的时候,可以用JUnit进行测试。


 下面用一个超级简单的小例子,来一起学习一下如何使用JUnit进行单元测试。


#1、引入jar包


 在使用JUnit之前,要先引入Junit的jar包


#2、被测试的方法:


 假如UserManager类中的三个方法需要被测试,这里列举出UserManager类中需要被测试的三个方法:

public class UserManager {
  public void add(String username) {
    System.out.println("add----"+username);
  }
  public void del(String username) {
    System.out.println("del----"+username);
  }
  public String findUserById(String userId){
    return "Danny";
  }
}


#3、编写单元测试类



  建立用来测试UserManager中方法的测试类UserManagerTest.java:

import junit.framework.TestCase;
public class UserManagerTest extends TestCase {
  public void testAdd() {
    UserManager usermanager = new UserManager();
    usermanager.add("Danny");
  }
  public void testDel() {
    UserManager usermanager = new UserManager();
    usermanager.del("Danny");
  }
  public void testFindUserById() {
    UserManager usermanager = new UserManager();
    String username = usermanager.findUserById("0001");
    System.out.println(username);
  }
}


 注意:单元测试类必须要继承 junit.framework.TestCase 类。


#4、进行单元测试


 这时,一个单元测试就建好了( 真的 so easy 有木有?),右键点击被测试方法的方法名 → Run As → JUnit Test,即可执行测试,比如对上面的testAdd方法测试的效果如下:


16.png

16.png


 左上方有表示成功执行的绿色进度条、执行过程中有0个错误和0个失败、执行时间为0.007秒等测试信息。


 到此,您就可以通过上述信息进行判断您的模块是否正确,性能是否还可以再优化,也可以用通过调试、打印等方式来辅助观察测试的执行情况。


#扩展——JUnit断言


 JUnit断言,听起来很高大上,其实就是JUnit为我们提供的几个函数,用来辅助说明被测方法是否达到了预期效果。


 比如JUnit中的一个断言assertEquals(expected,actual),expectd表示测试结果的期望值,actual表示测试结果的实际值。

用在上述测试类UserManagerTest中的testFindUserById()方法中的情景如下:


public void testFindUserById() {
    UserManager usermanager = new UserManager();
    String actual= usermanager.findUserById("0001");
    String expected="Danny";
    this.assertEquals(expected,actual);//断言
  }


  这里的预期值写的是"Danny",实际测试效果为测试成功:

17.png


  当把预期值改为"DannyHoo",实际测试效果为测试失败:


18.png


 JUnit还为我们提供了多种断言,比如验证测试结果是否为null的断言——assertNull(object)、验证测试结果是否为true的断言——assertTrue(condition)等等。如果想了解更多,可以参考JUnit的帮助文档,这里不再一 一列举。


#温馨提示


 为了使项目比较清晰、规范,可以将单元测试的类单独放在一个source folder或者一个包中,比如这种结构:


19.png

【 转载请注明出处——胡玉洋《三分钟学会JUnit单元测试》

相关文章
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
6月前
|
Java 测试技术 Android开发
课时148:junit测试工具
课时148介绍了JUnit测试工具的使用,包括定义、配置和编写测试程序。JUnit是流行的用例测试工具,用于确保代码稳定性。
100 0
|
11月前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
189 5
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
207 6
|
测试技术
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
270 2
|
Java 测试技术 Maven
单元测试问题之在Maven项目中引入JUnit 5和Mockito的依赖如何解决
单元测试问题之在Maven项目中引入JUnit 5和Mockito的依赖如何解决
783 1
|
测试技术
如何使用 JUnit 测试方法是否存在异常
【8月更文挑战第22天】
394 0
|
Java 测试技术 Maven
Junit单元测试 @Test的使用教程
这篇文章是一个关于Junit单元测试中`@Test`注解使用的教程,包括在Maven项目中添加Junit依赖、编写带有@Test注解的测试方法,以及解决@Test注解不生效的常见问题。
|
前端开发 Java 测试技术
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
|
Java Maven Spring
spring如何使用junit进行测试
spring如何使用junit进行测试
spring如何使用junit进行测试