0


SpringBoot 集成Junit单元测试

学习文章: https://www.cnblogs.com/ysocean/p/6889906.html

开发工具: IDEA 2022.1.4

目录

1. 概述

    接触到Junit,应该是看别人Java代码有一个@Test注解开始。就百度了解下,从英文名看,是“测试”的意思。那么Java方法加入了注解@Test,则说明该方法可直接运行。

    之前写类,如果要测试的话,就在main()方法测试,如果该类方法过多,都写在main的话,要不停的去注释代码,写新的测试代码。那么使用Junit的话,则简便很多,直接加入@Test注解即可。

    观察效果,加入了注解后,方法行前面会有绿色的图标,点击图标,分别点击test()方法和main()方法,显示如下:

    也就说,这个test()方法是可以直接运行了。

    需要注意的是,加入@Test注解的方法,声明必须是**public void并且无参**

2. 实现步骤

2.1 maven导入依赖

        <!-- 单元测试 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

2.2 随意代码演示(不推荐)

    我在工具类中加入了main()和test()方法,用来测试getToken()方法,均可实现,但实际中不这么写,看自己随意。
public class JwtUtils {

    public static String SECRET= "1c2h3e4n5w6e7i8x9i0n";

    public static String getToken(Map<String, String> map){
        JWTCreator.Builder builder= JWT.create();
        map.forEach((k,v)->{
            builder.withClaim(k,v);
        });
        Calendar instance= Calendar.getInstance();
        instance.add(Calendar.HOUR, 2);  //默认2小时过期

        builder.withExpiresAt(instance.getTime());
        String token= builder.sign(Algorithm.HMAC256(SECRET));
        return token;
    }

    public static DecodedJWT verfy(String token){
        DecodedJWT decodedJWT= JWT.require(Algorithm.HMAC256(SECRET)).build().verify(token);
        return decodedJWT;
    }

    @Test
    public void test() {
        Map<String,String> map=new HashMap<>();
        map.put("username", "1107230602");
        map.put("password", "0246813579");
        String token= JwtUtils.getToken(map);
        System.out.print(token);
    }

    public static void main(String[] args) {
        Map<String,String> map=new HashMap<>();
        map.put("username", "1107230602");
        map.put("password", "0246813579");
        String token= JwtUtils.getToken(map);
        System.out.print(token);
    }
}

2.3 规范代码演示(推荐)

在工程test目录下,如下路径,并创建测试类,一般以被测试目标类名+Test:

     此处注意,在类名那里,也有一个绿色图标,运行这个图标,则是把整个测试类的所有@Test方法都执行,只有点击方法那里的绿色图标,才是执行指定方法。

3. Junit相关其他注解

    以下代码源自: "https://www.cnblogs.com/ysocean/p/6889906.html" :

    通过以下代码,可以理清Junit相关注解的搭配使用.
public class JunitTest {
    public JunitTest() {
        System.out.println("构造函数");
    }
 
    @BeforeClass
    public static void beforeClass(){
        System.out.println("@BeforeClass");
    }
     
    @Before
    public void befor(){
        System.out.println("@Before");
    }
     
    @Test
    public void test(){
        System.out.println("@Test");
    }
     
    @Ignore
    public void ignore(){
        System.out.println("@Ignore");
    }
     
    @After
    public void after(){
        System.out.println("@After");
    }
     
    @AfterClass
    public static void afterClass(){
        System.out.println("@AfterClass");
    }
}
执行效果:
@BeforeClass
构造函数
@Before
@Test
@After
@AfterClass

4. 注意事项

** 注意:编写测试类的原则: **

①测试方法上必须使用@Test进行修饰

** ②测试方法必须使用public void 进行修饰,不能带任何的参数**

** ③新建一个源代码目录来存放我们的测试代码,即将测试代码和项目业务代码分开**

** ④测试类所在的包名应该和被测试类所在的包名保持一致**

** ⑤测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖**

** ⑥测试类使用Test作为类名的后缀(不是必须)**

** ⑦测试方法使用test作为方法名的前缀(不是必须)**

5. 结语

    Junit 单元测试框架

    仅供参考.

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

“SpringBoot 集成Junit单元测试”的评论:

还没有评论