只需要通过打上@Test
注解,即可将一个方法标记为测试案例,我们可以直接运行此测试案例,但是我们编写的测试方法有以下要求:
- 方法必须是public的
- 不能是静态方法
- 返回值必须是void
- 必须是没有任何参数的方法
我们可以点击类前面的测试按钮,或是单个方法前的测试按钮,如果点击类前面的测试按钮,会执行所有的测试用例。
运行测试后,我们发现控制台得到了一个测试结果,显示为绿色表示测试通过。
通过断言工具类来判定测试类是否通过
public class TestMain {
@Test
public void test1() {
System.out.println("test1: Hello World!");
}
@Test
public void test2() {
System.out.println("test2: Hello World!");
Assert.assertEquals(1,2); //参数1是期望值,参数2是实际值
}
}
参数1和参数2的值不一致则会报错
不仅可以判断数值,也可以判断数组或对象
数组判断可以举一个算法小例子,设计一个冒泡排序算法,并验证该算法的正确性
public class TestMain {
@Test
public void test1(){
int[] arr = {0, 4, 5, 2, 6, 9, 3, 1, 7, 8};
bubbleSort(arr);
Assert.assertArrayEquals(new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, arr);
}
@Test
public void test2(){
int[] arr = {15,0,11,14};
bubbleSort(arr);
Assert.assertArrayEquals(new int[]{0,11,14,15}, arr);
}
public void bubbleSort(int[] arr){
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if(arr[j] > arr[j + 1]){
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
}
test1和test2就像是我们熟悉的测试点,通过则表示AC,如果报错则表示WA
也可以用于判断两个对象是否相同,比如判断从mysql数据库中取出一个用户数据是否和期望的一致
public class TestMain {
@Test
public void test() throws FileNotFoundException {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(new FileInputStream("mybatis-config.xml"));
@Cleanup SqlSession session = sqlSessionFactory.openSession();
TestMapper mapper = session.getMapper(TestMapper.class);
User user = mapper.selectUserById(1);
System.out.println(user);
Assert.assertEquals(new User().setId(1).setName("小王").setAge(18),user);
}
}
@Before
和@After
可以为测试样例添加前置和结束动作
public class TestMain {
@Before
public void before() {
System.out.println("before");
}
@After
public void after() {
System.out.println("after");
}
@Test
public void test() throws FileNotFoundException {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(new FileInputStream("mybatis-config.xml"));
@Cleanup SqlSession session = sqlSessionFactory.openSession();
TestMapper mapper = session.getMapper(TestMapper.class);
User user = mapper.selectUserById(1);
System.out.println(user);
Assert.assertEquals(new User().setId(1).setName("小王").setAge(18),user);
}
}