这几天在看Hikari、Druid连接池。按照网上代码写Junit测试类。当时代码如下:
package com.ceaning.crudp.utils;import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;@SpringBootTest
public class JwtUtilsTest {@Autowiredprivate DataSource dataSource;@Testpublic void testConnection() throws Exception{System.out.println(dataSource.getConnection());}
}
运行提示:
java.lang.NullPointerException
当时搞整了好久,都没有找出原因,也问过Java的同事,也没想原因。今天无意中在网上看到关于这个得文章(https://blog.csdn.net/owlion/article/details/128020387),发现竟然是注解@Test得问题。
原我引用得是
import org.junit.Test;
更换引用
import org.junit.jupiter.api.Test;
得以解决。坑啊,赶紧记录下。
我赶紧试试两个有什么不同,发现
org.junit.Test 适用于当前类的方法测试,不依赖spring服务,直接执行@Test注解的方法;
org.junit.jupiter.api.Test 依赖spring服务,当引用此路径,spring服务先启动,在执行注解@Test的方法。