计算机系统应用教程网站

网站首页 > 技术文章 正文

Java JUnit单元测试

btikc 2024-09-02 17:15:42 技术文章 11 ℃ 0 评论

概述

单元

  • 单元指的就是类

作用

  • 对类中方法的预期结果,或者正确性进行测试。
  • 可以实现某种程序的自动化测试(一次编写,一只可以用,随时可以用)

优点

  • JUnit 是一个 Java 编程语言的开放源代码的单元测试工具,JUnit 是一个非常重要的测试工具。
  • JUnit可以灵活的选择执行哪些测试方法,可以一键执行全部测试方法。
  • Junit可以生成全部方法的测试报告,如果测试良好则是绿色;如果测试失败,则是红色
  • 单元测试中的某个方法测试失败了,不会影响其他测试方法的测试。

快速入门

①将JUnit的jar包导入到工程中

  • IDEA通常整合好了Junit框架,一般不需要导入。
  • 如果IDEA没有整合好,手工导入下面2个jar包到模块就可以了

②编写测试方法该测试方法必须是public无参数无返回值非静态方法

③在测试方法上使用@Test注解标注该方法是一个测试方法

④在测试方法中完成被测试方法的预期正确性测试。

⑤选中测试方法,右键通过JUnit运行该方法,观察结果

常用注解

 /**
  * 模拟一个登陆业务 给定账号admin 密码123456
  * 调用login方法传入参数用户名和密码,如果与给定的账号和密码一致返回 “登陆成功”
  * 如果传入的参数与给定的账号m和密码不一致返回 “用户名或密码错误”
  */
 public class UserService {
     public String login(String user, String passWord) {
         if (user.equals("admin") && passWord.equals("123456")) {
             return "登陆成功";
         }
         return "用户名或密码错误";
     }
 }
 import org.junit.Assert;
 import org.junit.Test;
 
 
 public class UseServiceTest {
     @Test
     public void testLogin() {
         UserService userService = new UserService();
         String result = userService.login("admin", "123456");
         //如果login方法的返回值与预期的值 “登陆成功” 不一致 会提示消息 “错误”
         Assert.assertEquals("错误", "登陆成功", result);
         System.out.println("代码没有问题哦");
     }
 }

在测试代码中我们给定正确的账户和密码可以看到执行结果是绿色的对号

如果在测试代码中给的账户名称与给定的不一致(模拟错误)

Junit常用注解(Junit 4.xxxx版本)

  • 开始执行的方法:初始化资源
  • 执行完之后的方法:释放资源

代码

 import org.junit.*;
 
 
 public class UseServiceTest {
     private static UserService userService;
 
     @BeforeClass
     public static void beforeClass() {
         userService = new UserService();
         System.out.println("被BeforeClass标注的方法执行了哦!我只所有方法之前执行一次");
     }
 
     @AfterClass
     public static void afterClass() {
         System.out.println("被AfterClass标注的方法执行了哦!我只在所有方法之后执行一次");
     }
 
     @Before
     public void before() {
         System.out.println("被Before标注的方法执行了哦!每个方法执行之前我都会执行的哦");
     }
 
     @After
     public void after() {
         System.out.println("被After标注的方法执行了哦!每个方法执行完毕我都会执行");
     }
 
 
     @Test
     public void testLogin() {
         String result = userService.login("admin", "123456");
         //如果login方法的返回值与预期的值 “登陆成功” 不一致 会提示消息 “错误”
         Assert.assertEquals("错误", "登陆成功", result);
         System.out.println("代码没有问题哦");
     }
 
     @Test
     public void testLogin2() {
         String result = userService.login("admin", "123456");
         //如果login方法的返回值与预期的值 “登陆成功” 不一致 会提示消息 “错误”
         Assert.assertEquals("错误", "登陆成功", result);
         System.out.println("代码没有问题哦");
     }
 }
 

Junit常用注解(Junit* 5**.xxxx版本)

  • 开始执行的方法:初始化资源
  • 执行完之后的方法:释放资源

JUnit5中的注解使用方式与JUnit4中一样



本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表