测试
Junit入门
单元测试
单元测试:就是针对最小的功能单元(方法),编写测试代码对其正确性进行测试。
JUnit:最流行的Java测试框架之一,提供了一些功能,方便程序进行单元测试(第三方公司提供)。
通过main方法是可以进行测试的,可以测试程序是否正常运行。但是main方法进行测试时,会存在如下问题:
入门程序
需求:使用JUnit,对UserService中的业务方法进行单元测试,测试其正确性。
断言
package com.itheima;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
public class UserServiceTest {
@Test
public void testGetAge2(){
Integer age = new UserService().getAge("110002200505091218");
Assertions.assertNotEquals(18, age, "两个值相等");
// String s1 = new String("Hello");
// String s2 = "Hello";
// Assertions.assertSame(s1, s2, "不是同一个对象引用");
}
@Test
public void testGetGender2(){
String gender = new UserService().getGender("612429198904201611");
Assertions.assertEquals("男", gender);
}
}
Junit常见注解
注意beforeAll和afterAll是静态方法
参数化注解
package com.itheima;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
@DisplayName("测试-学生业务操作")
public class UserServiceTest {
@DisplayName("测试-获取年龄")
@Test
public void testGetAge(){
Integer age = new UserService().getAge("110002200505091218");
System.out.println(age);
}
@DisplayName("测试-获取性别")
@Test
public void testGetGender(){
String gender = new UserService().getGender("612429198904201611");
System.out.println(gender);
}
@DisplayName("测试-获取性别3")
@ParameterizedTest
@ValueSource(strings = {"612429198904201611","612429198904201631","612429198904201626"})
public void testGetGender3(String idcard){
String gender = new UserService().getGender(idcard);
System.out.println(gender);
}
}
输出
编写测试方法时,要尽可能的覆盖业务方法中所有可能得情况(尤其是边界值)
依赖范围
这样junit包只能在test中使用