学习文章: 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 单元测试框架
仅供参考.
版权归原作者 ceaningking 所有, 如有侵权,请联系我们删除。