Java 单元测试

开发好的系统中存在很多方法,如何对这些方法进行正确性的测试。

单元测试就是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法,因此,单元测试就是针对Java方法的测试,进而检查方法的正确性。

目前测试方法是在main方法里面测试,一个方法的测试失败会影响其他方法。

无法得到测试报告,需要程序员自己观察是否测试成功。

无法实现自动化测试。

JUnit单元测试框架:

JUnit是使用Java语言实现的单元测试框架,他是开源的,Java开发者都应当学习并使用JUnit编写单元测试。

此外,几乎所有的IDE工具都集成了JUnit,这样我们就可以直接在IDE中编写并运行JUnit测试,JUnit目前最新版本是5。

JUnit优点

JUnit可以灵活的选择执行哪些测试方法,可以一键执行全部测试方法。

Junit可以生成全部方法的测试报告。

单元测试中的某个方法测试失败了,不会影响其他测试方法的测试。

一、单元测试的步骤

1、将JUnit的jar包导入到项目中

        IDEA通常整合好了JUnit框架,一般不需要导入

如果IDEA没有整合好,需要自己手工导入

2、编写测试方法:该测试方法必须是公共的、非静态的、无参数、无返回值的方法。

3、在测试方法上使用@Test注解:标注该方法是一个测试方法。

4、在测试方法中完成被测试方法的预期正确值测试。(使用Assert类调用方法完成)

5、选中测试方法,选择JUnit运行,如果良好则是绿色,如果测试失败,则是红色。

二、单元测试常用注解(JUnit 5.××版本)

@Test  测试方法

@BeforeEach  用来修饰实例方法,该方法会在每一个测试方法执行之前执行一次。

@AfterEach  用来修饰实例方法,该方法会在每一个测试方法执行之后执行一次。

@BeforeAll  用来静态修饰方法,该方法会在所有测试方法执行之前执行一次。

@AfterAll  用来静态修饰方法,该方法会在所有测试方法之后执行一次。

开始执行的方法:初始化资源。

执行完之后的方法:释放资源。

模拟测试用户服务功能:

public class UserServer {
    public static String Login(String admin,String password){
        if ("admin".equals(admin)&&"123456".equals(password)){
            return "登陆成功";
        }else {
            return "用户名或密码错误,请重新输入";
        }
    }
    public  void selectUser(){
        System.out.println(10/0);
        System.out.println("查询完成");
    }
}

public class TestUserServer {
    /*
    测试方法
    注意:1、必须是公开的,无参数,无返回值的方法
         2、测试方法必须使用@Test注解标记
     */
    @Test
    public void TestLogin(){
        UserServer userServer=new UserServer();
        String rs= userServer.Login("admin","123456");
        Assert.assertEquals("你的登录业务有问题","登陆成功",rs);
    }
    @Test
    public void TestselectUser(){
        UserServer userServer=new UserServer();
        userServer.selectUser();
    }
}

测试结果:

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值