Java后端开发单元测试

测试概览

测试是用于促进鉴定软件正确性、完整性、安全性和软件质量的过程。在开发的过程中测试是必不可少的,测试一般分为四个阶段:单元测试集成测试系统测试验收测试;对于后端开发人员而言,需要会单元测试和集成测试。测试的方法一般分为三种:白盒测试黑盒测试灰盒测试

白盒测试

白盒测试是清楚软件的内部结构,清楚其源代码逻辑,是用于验证源代码和代码逻辑的正确性的。其中,单元测试就属于白盒测试。

黑盒测试

黑盒测试是不清楚软件的内部结构,不清楚源代码逻辑,是用于验证软件的功能、和兼容性方面问题的。其中,系统测试和验收测试都属于黑盒测试。

灰盒测试

灰盒测试顾名思义,兼顾了白盒与黑盒测试的特点,既要关注软件的内部结构,又要考虑软件的外在表现。其中,集成测试就属于灰盒测试。

单元测试

单元测试:是针对程序的最小的功能单元(方法),编写测试代码对其正确性进行测试。

JUnit测试框架进行单元测试

JUnit是目前最流行的Java测试框架之一,提供了一些功能,方便程序进行单元测试(第三方公司提供);在使用JUnit这样的测试框架之前,我们一般是通过编写测试类通过main方法对代码进行测试的,这样做从功能上而言,是可以达到一样的效果,但实际上还是存在一些问题:

  1. 测试代码和源代码没有区分,写在一起,难以维护。
  2. main方法测试多个功能,假如一个功能测试失败,程序直接停止,影响后面的功能测试。
  3. 无法自动化测试,得到测试报告。

这些是用main方法测试的局限,但是使用了JUnit框架进行测试,就可以弥补这些不足:JUnit的测试代码和源代码是分开的,便于维护;JUnit可以根据需要自动化测试,功能测试之间相互不会影响;JUnit可以自动分析测试结果,产出测试报告,测试更加高效。 所以说推荐使用JUnit测试框架进行单元测试。

使用JUnit测试框架

JUnit是第三方提供的测试框架,在Maven项目中,需要在pom.xml文件中引入其maven坐标:

然后在test/java目录下,创建一个测试类,然后编写对应的测试方法(一般而言,测试类都叫xxxxxTest),并且在方法(方法一般叫testXxxxx)上使用@Test注解(这是JUnit提供的注解)表明这是一个测试方法。 注意,Junit中单元测试的方法必须声明为public void,否则无法测试! 根据以上规则,举一个例子:现在有一个UserService类,其中有两个方法,一个是根据用户的身份证判断用户的年龄,一个是根据用户的身份证判断用户的性别:

public class UserService {
    /**
     * 根据身份证号码,计算出用户的年龄
     * @param idCard 身份证号码
     * @return 用户年龄
     */
    public Integer getAge(String idCard) {
        if (idCard == null || idCard.length() != 18) {
            throw new IllegalArgumentException("无效的身份证号码");
        }
        String birthday = idCard.substring(6, 14);
        LocalDate parse = LocalDate.parse(birthday, DateTimeFormatter.ofPattern("yyyyMMdd"));
        return Period.between(parse, LocalDate.now()).getYears();
    }

    /**
     * 根据身份证号码判断用户性别
     * @param idCard 身份证号码
     * @return 性别
     */
    public String getGender(String idCard) {
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值