• day36-单元测试


    1. 单元测试Junit

    1.1 什么是单元测试?(掌握)

    对部分代码进行测试。

    1.2 Junit的特点?(掌握)

    • 是一个第三方的工具。(把别人写的代码导入项目中)(专业叫法:导jar包)

    • 如果运行结果显示绿色,表示运行结果是正确的。

      如果运行结果显示红色,表示运行结果是错误的。

    1.3 基本用法:(掌握)

    1,一定要先写一个方法。

    2,在这个方法的上面写@Test

    3,鼠标点一下@Test 按alt + 回车,点击Junit4

    ​ 此时就可以自动导包。

    ​ 如果自动导包失败(连接外网,或者自己手动导包)

    ​ 如果导包成功在左下角就会出现Junit4的相关jar包

    手动导包(掌握)

    1,在当前模块下,右键新建一个文件夹(lib)

    2,把今天资料里面的两个jar包,拷贝到lib文件夹里面

    3,选中两个jar右键点击add as a lib…

    4,到代码中,找到@Test,按alt + 回车,再来导入。

    运行测试代码(掌握)

    • 只能直接运行无参无返回值的非静态方法
    • 想要运行谁,就右键点击哪个方法。如果想要运行一个类里面所有的测试方法,选择类名,有点点击即可。

    Junit正确的打开方式(正确的使用方式)(掌握)

    注意点:并不是直接在要测试的方法上面直接加@Test

    原因:因为要测试的方法有可能是有参数的,有返回值,或者是静态的。

    正确的使用方式:(掌握)

    1,新建测试类

    2,新建测试方法(要测试的方法名 + Test) methodTest

    3,在这个方法中直接调用要测试的方法

    4,在测试方法的上面写@Test

    代码示例:

    //真正用来测试的类
    //测试用例(测试类)
    public class JunitTest {
    
        //在这个类里面再写无参无返回值的非静态方法
        //在方法中调用想要测试的方法
    
        @Test
        public void method2Test(){
            //调用要测试的方法
            JunitDemo1 jd = new JunitDemo1();
            jd.method2(10);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    实际开发中单元测试的使用方式(掌握)

    需求:测试File中的delete方法,写的是否正确(掌握)

    开发中的测试原则:

    不污染原数据。

    代码示例:

    public class JunitDemo3 {
        //在实际开发中,真正完整的单元测试该怎么写?
        //前提:
        //以后在工作的时候,测试代码不能污染原数据。(修改,篡改)
        //1.利用Before去对数据做一个初始化的动作
        //2.利用Test真正的去测试方法
        //3.利用After去还原数据
        
        //需求:测试File类中的delete方法是否书写正确???
        @Before
        public void beforemethod() throws IOException {
            //先备份
            File src = new File("C:\\Users\\moon\\Desktop\\a.txt");
            File dest = new File("C:\\Users\\moon\\Desktop\\copy.txt");
    
            FileInputStream fis = new FileInputStream(src);
            FileOutputStream fos = new FileOutputStream(dest);
            int b;
            while((b = fis.read()) != -1){
                fos.write(b);
            }
            fos.close();
            fis.close();
        }
    
        //作为一个标准的测试人员,运行完单元测试之后,不能污染原数据
        //需要达到下面两个要求:
        //1.得到结果
        //2.a.txt还在而且其他的备份文件消失
        @Test
        public void method(){
            File file = new File("C:\\Users\\moon\\Desktop\\a.txt");
            boolean delete = file.delete();
    
            //检查a.txt是否存在
            boolean exists = file.exists();
    
            //只有同时满足了下面所有的断言,才表示delete方法编写正确
            Assert.assertEquals("delete方法出错了",delete,true);
            Assert.assertEquals("delete方法出错了",exists,false);
        }
    
    
        @After
        public void aftermethod() throws IOException {
            //还要对a.txt做一个还原
            File src = new File("C:\\Users\\moon\\Desktop\\copy.txt");
            File dest = new File("C:\\Users\\moon\\Desktop\\a.txt");
    
            FileInputStream fis = new FileInputStream(src);
            FileOutputStream fos = new FileOutputStream(dest);
            int b;
            while((b = fis.read()) != -1){
                fos.write(b);
            }
            fos.close();
            fis.close();
    
            //备份数据要删除
            src.delete();
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63

    作业:

    ​ 测试Properties类中的store方法是否书写正确?

    开发心得:

    1.Before 准备数据

    2.Test 测试方法

    3.After 还原

    Before

    准备数据
    1.创建Properties的对象
    2.put数据到集合当中
    //只不过在下面的方法中,我们也需要用到Properties的对象,所以写完之后要挪到成员位置
    
    • 1
    • 2
    • 3
    • 4

    Test

    调用store方法,保存数据到本地文件
    
    断言1:
    	判断当前文件是否存在
    断言2:
    	文件的大小一定是大于0
    断言3:
    	再次读取文件中的数据,判断是否跟集合中一致
    
    结论:
    	如果所有的断言都通过了,表示store方法是正确的
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    After

    把本地文件给删除
    
    • 1

    扩展点:

    在单元测试中,相对路径是相对当前模块而言的。

    代码示例:

    File file = new File("aweihaoshuai.txt");
    file.createNewFile();
    //此时是把aweihaoshuai.txt这个文件新建到模块中了。
    
    • 1
    • 2
    • 3
  • 相关阅读:
    Spring教程-01-IOC控制反转
    利用机器学习应对气候变化
    【自动化基础】手把手教零基础小白搭建APP的UI自动化环境
    图片去水印免费软件哪个好?这几款软件值得一看
    Yolov8小目标检测(22):感受野注意力卷积运算(RFAConv),助力小目标检测
    Linux:磁盘空间占用,查看某个文件或目录占用磁盘空间的大小
    YOLO系列 -- txt2xml脚本
    springboot使用jackson序列化报错
    图象的感光原件、成象原理、相机的相关坐标系
    时间的api
  • 原文地址:https://blog.csdn.net/WU3087676106/article/details/133417979