0


SpringBoot开启测试用例

目标读者

1、Springboot初学者

2、小厂职场小白

1、关于测试

我最近发现一些刚刚参加工作的测试是软件质量保证的最佳办法,也是程序交付的最终环节,测试是一门学科,关于测试的方法有很多,在理论层面有黑河测试、白盒测试,在操作指导方面有边界值测试等等相关方法。相关的文章和书籍汗牛充栋,不胜枚举。由于本人不是专门的测试工程师,在此不做过多赘述。

2、存在问题

当前SpringBoot自动装配式框架使用非常广泛,但是初级程序员对于使用过程中的测试方法没有充分运用SpringBoot提供的便利,往往对于DAO和Service层的测试等controller编写完成后,通过swagger、postman等工具测试,经常导致测试不及时,讲具有问题的代码提交至git仓库。

3、本篇文章主要目的

介绍SpringBoot中的一种测试方法,可以针对已经完成的代码进行测试。

4、方法内容

(1)工程结构,在spring boot工程中,已经自动创建了test文件夹,在其中按照main中的包结构创建相应的包,然后对应相应的类,创建测试类。这种工程结构,便于维护。后续那个类需要测试,在test下的包中创建相应的测试类,测试类的名称与被测试类相同,添加Test后缀。

(2)配置与测试代码编写

相关依赖,SprinBoot会自动添加spring-boot-starter-test依赖,而junit依赖需要手动添加

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
</dependency>
<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
</dependency>

编写代码(被测试类),被测试代码包含一个接口和一个实现类,实现类实现了接口的方法,为了演示方便,接口类是根据用户id,查询用户名,实现类直接返回用户名。

/**
 * @author admin
 */
public interface UserService {
    /**
     * 获取用户
     * @param id 用户id
     * @return 用户名
     */
    String findUserNameById(int id);
}
package com.example.testdemo.service.impl;

import com.example.testdemo.service.UserService;
import org.springframework.stereotype.Service;

/**
 * @author admin
 */
@Service
class UserServiceImpl implements UserService {
    @Override
    public String findUserNameById(int id) {
        return "张三"+id;
    }
}

测试类,是我们本文重点介绍的内容,主要注意的是,需要三个注解

  • @RunWith(SpringRunner.class):是一个运行器,再此使用SpringRunner运行
  • @SpringBootTest:可以使用让测试类注入需要测试的接口方法
  • @Test:添加在测试方法上,表明这是一个测试方法

注意:测试方法命名跟被测试方法相同,后加Test后缀,测试方法必须是void的。

package com.example.testdemo.service.impl;

import com.example.testdemo.service.UserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserServiceTest {
    @Autowired
    private UserService userService;

    @Test
    public void findUserNameByIdTest(){
        for (int i = 0; i < 5; i++) {
            String username = userService.findUserNameById(i);
            System.out.println(username);

        }
    }

}

测试结果


本文转载自: https://blog.csdn.net/zhang_232/article/details/128167337
版权归原作者 天码村 所有, 如有侵权,请联系我们删除。

“SpringBoot开启测试用例”的评论:

还没有评论